【发布时间】:2013-06-19 14:11:17
【问题描述】:
我正在尝试使用if 和ifelse 在 R 中编写以下语句。示例数据是试验,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,因为我只处理矢量。但是,我在这方面没有运气。有什么想法吗?
【问题讨论】:
标签: r if-statement