合并data.frame的值

时间:2011-01-10 15:24:15

标签: r

我是初学者,我认为这不是那么困难。我想组合data.frame的值,如下所示:

输入data.frame:

  col1 col2
1 a   50
2 a   80
3 b   40
4 c   20 

输出data.frame:

 col1 col1
1 a [50,80]
2 b [40]
3 c [20]

在输入中,col1不是唯一的。对于col1中的每个值,我想将col2中的所有值组合在一个向量中。在输出中,col1是唯一的。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

数据框的条目不能是列表,它们必须是原子的。你可能想要的是得到一个命名的向量列表:

df <- data.frame( col1 = c('a','a','b','c'), col2 = c(50,80,40,20))
with(df, tapply(col2, col1, list))

这是一个命名列表:

$a
[1] 50 80

$b
[1] 40

$c
[1] 20