我是初学者,我认为这不是那么困难。我想组合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
是唯一的。
你能帮我解决这个问题吗?
答案 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