R在具有不同运算符的多个列上聚合数据帧的行

时间:2016-03-19 10:32:50

标签: r aggregate

说我有以下数据框

ID   A    B    C
1    10   10   10
1    20   5    15
1    30   0    12
2    10   5    13
2    0    10   10
...

我想按ID聚合相框,但将mean()应用于A,将min()应用于B,将max()应用于C.

导致这个

ID   A    B    C
1    20   0    15
2    5    5    13
...

如何有效地完成这项工作(我有一个非常大的数据框)?

2 个答案:

答案 0 :(得分:3)

使用dplyr包。假设您的数据框名称为"数据":

library(dplyr)
t1 <- summarize(group_by(data,ID), A=mean(A), B=min(B), C=max(C) )
t1 <- as.data.frame(t1)
t1

输出:

  ID  A B  C
1  1 20 0 15
2  2  5 5 13

答案 1 :(得分:1)

data.table方法,

Library("data.table")
Table1 <- data.table(df)
Table1[, list(A = mean(A), B = min(B), C = max(C)), by = "ID"]
#   ID  A B  C
#1:  1 20 0 15
#2:  2  5 5 13