在R中具有多个测试条件的if else的问题

时间:2013-03-07 03:20:35

标签: r if-statement

我的数据框(“每日”)简化如下:

Day Spot
1 1
1 2
1 3
1 4
1 5
1 6

我想要一个新的色谱柱,治疗,其元素应该是“环境”(斑点2,3,6)和“升高”(斑点1,4,5)的因素。我试过这个:

daily$treatment<- factor(ifelse(daily$ring==c("1","4","5"), "elevated", "ambient"))  

但它返回了这个警告,结果不是我需要的: 警告信息: 1:在is.na(e1)| is.na(e2):   较长的物体长度不是较短物体长度的倍数 2:在==.default(每日$ ring,c(“1”,“4”,“5”)):   较长的物体长度不是较短物体长度的倍数 或者我也试过,但没有尝试:

if (daily$ring==1 | daily$ring==4 | daily$ring==5){
   daily$treatment <- "elevated"
 } else {
   daily$treatment <- "ambient"
 }  

我做错了什么? 感谢

1 个答案:

答案 0 :(得分:2)

daily$treatment <- factor(ifelse(daily$Spot %in% c(1,4,5), "elevated", "ambient"))

daily
##   Day Spot treatment
## 1   1    1  elevated
## 2   1    2   ambient
## 3   1    3   ambient
## 4   1    4  elevated
## 5   1    5  elevated
## 6   1    6   ambient