假设这是我的数据:
X Y Z
1 1 2323
1 1 45
1 1 67
1 2 1
1 2 90
1 3 34
1 3 1267
1 3 623
1 4 81
1 4 501
2 1 456
2 1 78
2 2 41
2 2 56
2 3 90
2 3 71
2 4 24
2 4 98
2 5 42
2 5 361
如何为每个单独的Z
计算每个唯一变量Y
的{{1}}值,以便我可以获得如下所示的数据框:
X
答案 0 :(得分:1)
假设数据框名为'dat',那么aggregate.formula
是聚合的泛型之一:
> aggregate( Z ~ X + Y, data=dat, FUN=sum)
X Y Z
1 1 1 2435
2 2 1 534
3 1 2 91
4 2 2 97
5 1 3 1924
6 2 3 161
7 1 4 582
8 2 4 122
9 2 5 403
也可以使用xtabs
返回一个表对象,然后将其转换为带有as.data.frame的数据框:
as.data.frame( xtabs( Z ~ X+Y, data=dat) )