ifelse function in R only returns the first element
[This article was first published on One Tip Per Day, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
If you also favor to use the function, be aware of the returned value. For example:
Here is another nice example (from http://rwiki.sciviews.org/doku.php?id=tips:programming:ifelse)
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
> ifelse(1>0, 3, 4) [1] 3 > ifelse(1>0, c(2, 3), c(4, 5)) # only the first element returned. [1] 2 > ifelse(c(1:10)>5, 'on', 'off') [1] "off" "off" "off" "off" "off" "on" "on" "on" "on" "on"
Here is another nice example (from http://rwiki.sciviews.org/doku.php?id=tips:programming:ifelse)
> varD <- log(0:9) # A vector like this one that contains -Inf could be troublesome in subsequent manipulations > varD [1] -Inf 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 [8] 1.9459101 2.0794415 2.1972246 > varD <- ifelse(is.finite(varD), varD, NA) # Remove the -Inf, replace with NA > varD [1] NA 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 [8] 1.9459101 2.0794415 2.1972246
To leave a comment for the author, please follow the link and comment on their blog: One Tip Per Day.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.