我试图用R和ifelse
对R中的以下语句进行编码。样本数据是trial,x,y和z是trial的列)。在R中使用ifelse
语句使用ifelse
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,???)))
其中被编码
if (x>0) {
if (y>0) {
l=2
}else{
l=5
}
if (z>0) {
m=l+2
}else{
m=5
}
}
将R代码,???
指定有根据上述声明没有值。换句话说,对于x<0 and y
,没有值。
接下来,我用的,如果组合和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
,因为我只处理矢量。但是,在这方面我没有运气。任何想法?
感谢您使用'transform'的解决方案。 – Metrics