我正在尝试在 R 中编写以下语句:if
and 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,???)))
where, ???
指定根据上述语句没有任何值。换句话说对于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
因为我只处理向量。但是,我在这方面没有运气。任何想法?