我正在尝试用if
和在 R 中编写以下语句ifelse
。示例数据是试验,x、y 和 z 是试验的列)。
要编码的语句
if (x>0) {
if (y>0) {
l=2
}else{
l=5
}
if (z>0) {
m=l+2
}else{
m=5
}
}
使用 ifelse 的 R 代码
trial$l<-with(trial, ifelse((x>0 &y>0),2,ifelse((x>0 &y<=0),5,???)))
trial$m<-with (trial,ifelse((x>0 &z>0),l+2,ifelse((x>0 &z<=0),5,???)))
其中,???
根据上述语句指定没有值。换句话说,x<0 and y
没有价值。
接下来,我使用 if 和 ifelse 的组合来查看是否有效:
if(trial$z>0){
trial$l<-with(trial, ifelse(y>0,2,5))
trial$m<-with(trial, ifelse(z>0,l+2,5))
}
此代码没问题,但有一条警告消息(因为z
是列向量)
In if (trial$z>0){
the condition has length>1 and only the first element will be used
我只想专注于使用,ifelse
因为我只处理矢量。但是,我在这方面没有运气。任何的想法?