Hello everybody, I don't understand what I'm doing wrong. But it isn't possible that each element of the if-condition is tested for each vector element? y <- c(1:20)> y[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20> if (y == c(4,5,9,11,17)) { print("yes") } else { print("no")}[1] "no" warning: In if (y == c(4, 5, 9, 11, 17)) { : Condition has length > 1 and only the first element is used>#It also doesn't work with this condition ==2 if (y == 2) { print("yes") } else { print("no")} [1] "no" warning: In if (y == 2) { : Condition has length> 1 and only the first element is used I guess it's a trivial problem. I hope someone can help me. Thank you! [[alternative HTML version deleted]]
HI,
Try ifelse
?fun1<-function(y){
?ifelse(y==c(4,5,9,11,17),"yes","no")
?}> fun1(9)
#[1] "no"? "no"? "yes" "no"?
"no"
A.K.
----- Original Message -----
From: Dominic Roye <dominic.roye at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Sunday, August 12, 2012 6:12 AM
Subject: [R] Error in if-command
Hello everybody,
I don't understand what I'm doing wrong. But it isn't possible that
each
element of the if-condition is tested for each vector element?
y <- c(1:20)> y
[1]? 1? 2? 3? 4? 5? 6? 7? 8? 9 10 11 12 13 14 15 16 17 18 19 20
> if (y == c(4,5,9,11,17)) { print("yes")? } else {
print("no")}
[1] "no"
warning:
In if (y == c(4, 5, 9, 11, 17)) { :
? Condition has length > 1 and only the first element is
used>
#It also doesn't work with this condition ==2
if (y == 2) { print("yes")? } else { print("no")}
[1] "no"
warning:
In if (y == 2) { :
Condition has length> 1 and only the first element is used
I guess it's a trivial problem. I hope someone can help me.
Thank you!
??? [[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
HI,
Your second function works:
fun2<-function(y){
?if(y==2){
?print("yes")}
?else {print("no")}}
?fun2(3)
#[1] "no"
?fun2(4)
#[1] "no"
?fun2(2)
#[1] "yes"
But, in the first case, it is a vector.
So, you can use:
fun3<-function(y){
?numbers1<-c(4,5,9,11,17)
?if(y %in% numbers1){
?print("yes")}
?else {print("no")}
?}
?fun3(8)
#[1] "no"
?fun3(9)
#[1] "yes"
?fun3(10)
#[1] "no"
?fun3(11)
#[1] "yes"
A.K.
----- Original Message -----
From: Dominic Roye <dominic.roye at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Sunday, August 12, 2012 6:12 AM
Subject: [R] Error in if-command
Hello everybody,
I don't understand what I'm doing wrong. But it isn't possible that
each
element of the if-condition is tested for each vector element?
y <- c(1:20)> y
[1]? 1? 2? 3? 4? 5? 6? 7? 8? 9 10 11 12 13 14 15 16 17 18 19 20
> if (y == c(4,5,9,11,17)) { print("yes")? } else {
print("no")}
[1] "no"
warning:
In if (y == c(4, 5, 9, 11, 17)) { :
? Condition has length > 1 and only the first element is
used>
#It also doesn't work with this condition ==2
if (y == 2) { print("yes")? } else { print("no")}
[1] "no"
warning:
In if (y == 2) { :
Condition has length> 1 and only the first element is used
I guess it's a trivial problem. I hope someone can help me.
Thank you!
??? [[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Take a look at ?ifelse Cheers, Michael On Aug 12, 2012, at 3:12 AM, Dominic Roye <dominic.roye at gmail.com> wrote:> Hello everybody, > > I don't understand what I'm doing wrong. But it isn't possible that each > element of the if-condition is tested for each vector element? > > y <- c(1:20) >> y > [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > >> if (y == c(4,5,9,11,17)) { print("yes") } else { print("no")} > [1] "no" > warning: > In if (y == c(4, 5, 9, 11, 17)) { : > Condition has length > 1 and only the first element is used >> > > > #It also doesn't work with this condition ==2 > > if (y == 2) { print("yes") } else { print("no")} > [1] "no" > warning: > In if (y == 2) { : > Condition has length> 1 and only the first element is used > > > > I guess it's a trivial problem. I hope someone can help me. > > Thank you! > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.