将项目附加到R中的向量列

时间:2013-05-12 01:38:32

标签: r

我有两个数据框,一个带有一个独特的主题ID列表(长度为39),另一个带有一个主题ID列表,如果受试者参与多个试验。我想

基本上,我需要离开:

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])

   }

}

会产生以下警告: 要替换的项目数量不是替换长度的倍数

1 个答案:

答案 0 :(得分: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]