说我有以下数据框
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
...
如何有效地完成这项工作(我有一个非常大的数据框)?
答案 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