why does gsub not replace NA
Aim
Replace NA
with "Nothing"
in character vector
Input
data<-c(NA, NA, "SupineAcid", NA, NA, NA, "UprightAcid", "UprightAcid",
NA, NA, "UprightAcid", NA, "UprightAcid", NA, NA, "UprightAcid",
"TotalAcid", NA, NA, NA)
Attempts
gsub(NA,"dd",data)
This leads to all the results being NA
I've also tried with "NA"
and fixed=TRUE
but the same issue.
r
add a comment |
Aim
Replace NA
with "Nothing"
in character vector
Input
data<-c(NA, NA, "SupineAcid", NA, NA, NA, "UprightAcid", "UprightAcid",
NA, NA, "UprightAcid", NA, "UprightAcid", NA, NA, "UprightAcid",
"TotalAcid", NA, NA, NA)
Attempts
gsub(NA,"dd",data)
This leads to all the results being NA
I've also tried with "NA"
and fixed=TRUE
but the same issue.
r
Like I said, tried that one
– Sebastian Zeki
Nov 12 '18 at 18:09
2
You could trydata[is.na(data)]="dd"
– Lamia
Nov 12 '18 at 18:10
OK that worked. I didn't know you couldnt gsub NA
– Sebastian Zeki
Nov 12 '18 at 18:11
@Lamia Post as answer please
– Sebastian Zeki
Nov 12 '18 at 18:11
@SebastianZeki That's because there is nothing to gsub in an NA value. It's a value that saying "hey this is missing". When you use gsub you're saying I want to replace this particular string (or regex) with a certain value. Your gsub isn't matching NA because there is nothing to match - it's missing! So you need to call out the NAs directly usingis.na
– Dason
Nov 12 '18 at 18:13
add a comment |
Aim
Replace NA
with "Nothing"
in character vector
Input
data<-c(NA, NA, "SupineAcid", NA, NA, NA, "UprightAcid", "UprightAcid",
NA, NA, "UprightAcid", NA, "UprightAcid", NA, NA, "UprightAcid",
"TotalAcid", NA, NA, NA)
Attempts
gsub(NA,"dd",data)
This leads to all the results being NA
I've also tried with "NA"
and fixed=TRUE
but the same issue.
r
Aim
Replace NA
with "Nothing"
in character vector
Input
data<-c(NA, NA, "SupineAcid", NA, NA, NA, "UprightAcid", "UprightAcid",
NA, NA, "UprightAcid", NA, "UprightAcid", NA, NA, "UprightAcid",
"TotalAcid", NA, NA, NA)
Attempts
gsub(NA,"dd",data)
This leads to all the results being NA
I've also tried with "NA"
and fixed=TRUE
but the same issue.
r
r
asked Nov 12 '18 at 18:07
Sebastian Zeki
2,43521846
2,43521846
Like I said, tried that one
– Sebastian Zeki
Nov 12 '18 at 18:09
2
You could trydata[is.na(data)]="dd"
– Lamia
Nov 12 '18 at 18:10
OK that worked. I didn't know you couldnt gsub NA
– Sebastian Zeki
Nov 12 '18 at 18:11
@Lamia Post as answer please
– Sebastian Zeki
Nov 12 '18 at 18:11
@SebastianZeki That's because there is nothing to gsub in an NA value. It's a value that saying "hey this is missing". When you use gsub you're saying I want to replace this particular string (or regex) with a certain value. Your gsub isn't matching NA because there is nothing to match - it's missing! So you need to call out the NAs directly usingis.na
– Dason
Nov 12 '18 at 18:13
add a comment |
Like I said, tried that one
– Sebastian Zeki
Nov 12 '18 at 18:09
2
You could trydata[is.na(data)]="dd"
– Lamia
Nov 12 '18 at 18:10
OK that worked. I didn't know you couldnt gsub NA
– Sebastian Zeki
Nov 12 '18 at 18:11
@Lamia Post as answer please
– Sebastian Zeki
Nov 12 '18 at 18:11
@SebastianZeki That's because there is nothing to gsub in an NA value. It's a value that saying "hey this is missing". When you use gsub you're saying I want to replace this particular string (or regex) with a certain value. Your gsub isn't matching NA because there is nothing to match - it's missing! So you need to call out the NAs directly usingis.na
– Dason
Nov 12 '18 at 18:13
Like I said, tried that one
– Sebastian Zeki
Nov 12 '18 at 18:09
Like I said, tried that one
– Sebastian Zeki
Nov 12 '18 at 18:09
2
2
You could try
data[is.na(data)]="dd"
– Lamia
Nov 12 '18 at 18:10
You could try
data[is.na(data)]="dd"
– Lamia
Nov 12 '18 at 18:10
OK that worked. I didn't know you couldnt gsub NA
– Sebastian Zeki
Nov 12 '18 at 18:11
OK that worked. I didn't know you couldnt gsub NA
– Sebastian Zeki
Nov 12 '18 at 18:11
@Lamia Post as answer please
– Sebastian Zeki
Nov 12 '18 at 18:11
@Lamia Post as answer please
– Sebastian Zeki
Nov 12 '18 at 18:11
@SebastianZeki That's because there is nothing to gsub in an NA value. It's a value that saying "hey this is missing". When you use gsub you're saying I want to replace this particular string (or regex) with a certain value. Your gsub isn't matching NA because there is nothing to match - it's missing! So you need to call out the NAs directly using
is.na
– Dason
Nov 12 '18 at 18:13
@SebastianZeki That's because there is nothing to gsub in an NA value. It's a value that saying "hey this is missing". When you use gsub you're saying I want to replace this particular string (or regex) with a certain value. Your gsub isn't matching NA because there is nothing to match - it's missing! So you need to call out the NAs directly using
is.na
– Dason
Nov 12 '18 at 18:13
add a comment |
3 Answers
3
active
oldest
votes
In order to change the NA
elements in your vector, you can use the is.na
function:
data[is.na(data)] = "dd"
"dd" "dd" "SupineAcid" "dd" "dd" "dd" "UprightAcid"
"UprightAcid" "dd" "dd" "UprightAcid" "dd" "UprightAcid" "dd"
"dd" "UprightAcid" "TotalAcid" "dd" "dd" "dd"
add a comment |
NA is not the same as "NA". If you make sure that both the first and third arguments use "NA" then it will work.
sub("NA", "dd", paste(data))
Alternately
ifelse(is.na(data), "dd", data)
add a comment |
Another option is replace
replace(data, is.na(data), 'dd')
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267759%2fwhy-does-gsub-not-replace-na%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
In order to change the NA
elements in your vector, you can use the is.na
function:
data[is.na(data)] = "dd"
"dd" "dd" "SupineAcid" "dd" "dd" "dd" "UprightAcid"
"UprightAcid" "dd" "dd" "UprightAcid" "dd" "UprightAcid" "dd"
"dd" "UprightAcid" "TotalAcid" "dd" "dd" "dd"
add a comment |
In order to change the NA
elements in your vector, you can use the is.na
function:
data[is.na(data)] = "dd"
"dd" "dd" "SupineAcid" "dd" "dd" "dd" "UprightAcid"
"UprightAcid" "dd" "dd" "UprightAcid" "dd" "UprightAcid" "dd"
"dd" "UprightAcid" "TotalAcid" "dd" "dd" "dd"
add a comment |
In order to change the NA
elements in your vector, you can use the is.na
function:
data[is.na(data)] = "dd"
"dd" "dd" "SupineAcid" "dd" "dd" "dd" "UprightAcid"
"UprightAcid" "dd" "dd" "UprightAcid" "dd" "UprightAcid" "dd"
"dd" "UprightAcid" "TotalAcid" "dd" "dd" "dd"
In order to change the NA
elements in your vector, you can use the is.na
function:
data[is.na(data)] = "dd"
"dd" "dd" "SupineAcid" "dd" "dd" "dd" "UprightAcid"
"UprightAcid" "dd" "dd" "UprightAcid" "dd" "UprightAcid" "dd"
"dd" "UprightAcid" "TotalAcid" "dd" "dd" "dd"
answered Nov 12 '18 at 18:13
Lamia
3,1451717
3,1451717
add a comment |
add a comment |
NA is not the same as "NA". If you make sure that both the first and third arguments use "NA" then it will work.
sub("NA", "dd", paste(data))
Alternately
ifelse(is.na(data), "dd", data)
add a comment |
NA is not the same as "NA". If you make sure that both the first and third arguments use "NA" then it will work.
sub("NA", "dd", paste(data))
Alternately
ifelse(is.na(data), "dd", data)
add a comment |
NA is not the same as "NA". If you make sure that both the first and third arguments use "NA" then it will work.
sub("NA", "dd", paste(data))
Alternately
ifelse(is.na(data), "dd", data)
NA is not the same as "NA". If you make sure that both the first and third arguments use "NA" then it will work.
sub("NA", "dd", paste(data))
Alternately
ifelse(is.na(data), "dd", data)
answered Nov 12 '18 at 18:22
G. Grothendieck
145k9126231
145k9126231
add a comment |
add a comment |
Another option is replace
replace(data, is.na(data), 'dd')
add a comment |
Another option is replace
replace(data, is.na(data), 'dd')
add a comment |
Another option is replace
replace(data, is.na(data), 'dd')
Another option is replace
replace(data, is.na(data), 'dd')
answered Nov 12 '18 at 18:26
akrun
399k13187260
399k13187260
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267759%2fwhy-does-gsub-not-replace-na%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Like I said, tried that one
– Sebastian Zeki
Nov 12 '18 at 18:09
2
You could try
data[is.na(data)]="dd"
– Lamia
Nov 12 '18 at 18:10
OK that worked. I didn't know you couldnt gsub NA
– Sebastian Zeki
Nov 12 '18 at 18:11
@Lamia Post as answer please
– Sebastian Zeki
Nov 12 '18 at 18:11
@SebastianZeki That's because there is nothing to gsub in an NA value. It's a value that saying "hey this is missing". When you use gsub you're saying I want to replace this particular string (or regex) with a certain value. Your gsub isn't matching NA because there is nothing to match - it's missing! So you need to call out the NAs directly using
is.na
– Dason
Nov 12 '18 at 18:13