【发布时间】:2013-07-15 21:17:46
【问题描述】:
我有一个包含客户 ID 和列表的数据框。 我想合并属于同一客户的那些列表。
library(plyr)
subsets <- list(c("a", "d", "e"), c("a", "b", "c", "e"))
customerids <- c(1,1)
transactions <- data.frame(customerid = customerids,subset =I(subsets))
> transactions
customerid subset
1 1 a, d, e
2 1 a, b, c, e
如果我想用 ddply 合并子集,我会得到一个扩展的结果
> ddply(transactions, .(customerid), summarise, subset=Reduce(union,subset))
customerid subset
1 1 a
2 1 d
3 1 e
4 1 b
5 1 c
虽然我预计所有结果都在 1 行中。
【问题讨论】:
-
创建数据框的步骤会引发错误。你可能以不同的方式创建了这个,应该发布
dput(transactions)。我认为数据框不能很好地保存列表对象。数据帧中的 POSIXlt 对象也有一个众所周知的困难。 -
确实我复制了一个错误的输入(没有 I 运算符),这是固定的。
-
+1 表示
I在 data.frame 中创建列表元素。 -
@agstudy,这是他今天的earlier question。
-
@Arun 我明白了……所以也为你 +1!