【发布时间】:2013-01-23 10:06:18
【问题描述】:
假设我有下表DataTable
Cat1 | Cat2 | Val1 | Val2
--------------------------------------------
A | A | 1 | 2
A | B | 3 | 4
B | A | 5 | 6
B | B | 7 | 8
A | A | 2 | 4
A | B | 6 | 8
B | A | 10 | 12
B | B | 14 | 16
我想通过 Cat1 和 Cat2 聚合,分别取 Val1 和 Val2 的 Sum 和 Avg,我该如何实现?
Cat1 | Cat2 | Sum Val1 | Avg Val2
--------------------------------------------
A | A | 3 | 3
A | B | 9 | 6
B | A | 15 | 9
B | B | 21 | 12
我已经用聚合函数实现了单变量聚合:
aggregate(
Val1
~ Cat1 + Cat2
data=DataTable,
FUNC=sum
)
但尽管玩了 cbind,但无法获得我想要的行为。我已经 24 小时开始学习 R,所以我对这些概念还不够熟悉,无法完全理解我一直在做的事情(总是很危险!),但我认为这一定很容易实现。 |
【问题讨论】: