2014-11-08 86 views
0

我R中新的,我有一個數據集,看起來像這樣(實際數據是10K通過5K,所以我真的需要一個捷徑):總結數據中的R

Cluster Item1 Item2 Item 3 

1   1  2   2 
1   3  1   1 
1   1  3   0 
2   3  2   0 
2   0  0   2 
2   4  2   2 
3   0  1   1 
3   1  1   2 

我想添加簇的每個數據集的列,所以它會看起來我這:

Cluster Item1 Item2 Item 3 

    1  5  6   3 
    2  7  4   4 
    3  1  2   3 

我想總結他們的某一列。感謝advandce。

回答

5

您可以使用aggregatedat是你的數據幀的名稱):

aggregate(dat[-1], dat["Cluster"], sum) 

# Cluster Item1 Item2 Item3 
# 1  1  5  6  3 
# 2  2  7  4  4 
# 3  3  1  2  3 

隨着data.table

library(data.table) 
setDT(dat)[ , lapply(.SD, sum), by = Cluster] 
# Cluster Item1 Item2 Item3 
# 1:  1  5  6  3 
# 2:  2  7  4  4 
# 3:  3  1  2  3 

隨着dplyr

dat %>% 
    group_by(Cluster) %>% 
    summarise_each(funs(sum)) 
# Cluster Item1 Item2 Item3 
# 1  1  5  6  3 
# 2  2  7  4  4 
# 3  3  1  2  3 
+0

感謝您的答案,我也用這個好它完美地工作: 彙總(。 〜集羣,data = dat,FUN = sum) – jbest 2014-11-08 12:24:58

1

謝謝您的回答,我也用這個好它完美地工作:

aggregate(. ~ Cluster, data=dat, FUN=sum) 



# Cluster Item1 Item2 Item3 
# 1  1  5  6  3 
# 2  2  7  4  4 
# 3  3  1  2  3 
0

嘗試:

> sapply(ddf[-1], function(x) tapply(x,ddf$Cluster,sum)) 
    Item1 Item2 Item3 
1  5  6  3 
2  7  4  4 
3  1  2  3