2013-05-12 74 views
0

列我有兩個數據幀,一個具有獨特的受試者編號(長度39)和一個與如果受試者參與多個試驗重複對象ID的列表的列表。我想追加項向量中的R

基本上,我需要從這個去:

a 23 
a 33 
a 18 
b 90 
b 2 

這樣:

a [23, 33, 18] 
b [90, 2] 

我已經在此工作了可憐幾個小時,他會喜歡的任何幫助我可以得到!

我試過一百萬的東西,他們都不上班!

for (i in 1:39) { 

    for (j in 1:119) { 

     if (datafram1$ids[i] == datafram2$ids[j]) datafram1$cases[i] <- append(datafram1$cases[i],datafram2$scores[j]) 

    } 

} 

結果如下警告: 數量的項目替換的是不是更換長度的倍數

回答

2

也許它存儲爲一個列表:

dat <- read.table(text="a 23 
a 33 
a 18 
b 90 
b 2", header=FALSE) 

with(dat, tapply(V2, V1, c)) 

## $a 
## [1] 23 33 18 
## 
## $b 
## [1] 90 2 

如果你希望它看起來喜歡你的輸出:

FUN <- function(x) paste0("[", paste(x, collapse=", "), "]") 

aggregate(V2~V1, dat, FUN) 
## V1   V2 
## 1 a [23, 33, 18] 
## 2 b  [90, 2]