2014-11-08 98 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