2016-03-19 11 views
0

私はIDによってフレームを集約したいが、BにA、min()mean()を適用しmax()なる私は、次のデータフレームR集計行は

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 A B C 
1 20 0 15 
2 5 5 13 
... 

への結果の

C.

には、どのように私は(私は非常に大規模なデータフレームを持っている)これを効率的に行うことができますか?

答えて

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 
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