根据前一列的行创建新列

时间:2012-07-27 17:49:56

标签: r dataframe

我正在尝试为我的实验ID分配治疗标签。这对我这么做有帮助,但现在我不确定为什么我的代码不起作用。 id是数字(作为因子输入(colname是plotF)),处理是A,B和C.数据帧非常大,这是一个例子。

data$trt[data$plotF == c(12, 21, 35, 43)] <- "A"
data$trt[data$plotF == c(15, 23, 32, 41)] <- "B"
data$trt[data$plotF == c(13, 24, 31, 46)] <- "C"

输出结果为:

plotF  trt
21 <NA>
24    C
46 <NA>
12 <NA>
23 <NA>
31 <NA>
13 <NA>
43    A
32 <NA>
15 <NA>
35    A
41    B
24 <NA>
46 <NA>
32    B
31 <NA>
13    C
21    A
12 <NA>
43    A
23 <NA>
15 <NA>
41 <NA>
35 <NA>

为什么有时会工作但不总是?

1 个答案:

答案 0 :(得分:2)

如果您将==替换为%in%,请执行以下操作?

data$trt[data$plotF %in% c(12, 21, 35, 43)] <- "A"
data$trt[data$plotF %in% c(15, 23, 32, 41)] <- "B"
data$trt[data$plotF %in% c(13, 24, 31, 46)] <- "C"