我有以下数据框架
x <- read.table(text = " id1 id2 val1 val2
1 a x 1 9
2 a x 2 4
3 a y 3 5
4 a y 4 9
5 b x 1 7
6 b y 4 4
7 b x 3 9
8 b y 2 8", header = TRUE)
Run Code Online (Sandbox Code Playgroud)
我想计算按id1和id2分组的val1和val2的平均值,并同时计算每个id1-id2组合的行数.我可以单独执行每个计算:
# calculate mean
aggregate(. ~ id1 + id2, data = x, FUN = mean)
# count rows
aggregate(. ~ id1 + id2, data = x, FUN …Run Code Online (Sandbox Code Playgroud) 如何将不同的聚合函数应用于R中的不同列?该aggregate()函数只提供一个要传递的函数参数:
V1 V2 V3
1 18.45022 62.24411694
2 90.34637 20.86505214
1 50.77358 27.30074987
2 52.95872 30.26189013
1 61.36935 26.90993530
2 49.31730 70.60387016
1 43.64142 87.64433517
2 36.19730 83.47232907
1 91.51753 0.03056485
... ... ...
> aggregate(sample,by=sample["V1"],FUN=sum)
V1 V1 V2 V3
1 1 10 578.5299 489.5307
2 2 20 575.2294 527.2222
Run Code Online (Sandbox Code Playgroud)
如何申请一个不同的功能,每列,即聚合V2与mean()功能,V2与sum()功能,无需调用aggregate()多次?