1

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

日点
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: In ==.default(daily$ring, c("1", "4", "5")) : 较长的对象长度不是更短的对象长度或者我也尝试过,但没有:

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

我究竟做错了什么?谢谢

4

1 回答 1

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
于 2013-03-07T03:24:36.103 回答