【发布时间】:2013-01-26 17:09:08
【问题描述】:
我有一个用于聚合的 data.frame,它由 plyr 的ddply 完成。现在的目标是编写一个函数,将聚合对象自动绑定到原始数据。问题是,可以有多个聚合变量。
以下是一个只有一个聚合变量的例子:
这里是我的数据框:
M O
1 1 6
2 2 7
3 2 4
4 1 6
然后使用ddply 我得到“O”的聚合:
TEST <- ddply(.data = DF,
.variables = c("M"),
.fun = summarise,
NEW = sum(O))
结果如下:
M NEW
1 1 12
2 2 11
我现在想做的是编写一个函数,使我能够将变量“New”绑定到原始 data.frame。
在循环中,它适用于:
for(i in 1:nrow(TEST)) {
DF$New[DF$M == TEST$M[i]] <- TEST$NEW[i]
}
M O New
1 1 6 12
2 2 7 11
3 2 4 11
4 1 6 12
现在我想把它转换成一个函数,即使有多个聚合变量,它也能提供等效的输出。
【问题讨论】:
-
只需使用
transform而不是summarise。 -
如果您将
summarise替换为transform作为答案并接受它会更好。 -
@Tyler 我会的!谢谢!