2012-07-27 45 views
0

我正在嘗試將治療標籤分配給我的實驗ID。 SO一直在幫助我獲得這麼多,但現在我不確定爲什麼我的代碼無法工作。 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> 

爲什麼有時但並不總是工作?

回答

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" 
+0

它就像一個魅力! – Nazer 2012-07-27 18:01:43