基于R中的Column对数据求和

jbe*_*est 0 r sum cluster-analysis

我是R的新手,我有一个看起来像这样的数据集(实际数据是10K乘5K所以我真的需要一个捷径):

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
Run Code Online (Sandbox Code Playgroud)

我想按群集添加每个数据集的列,以便它看起来像这样:

Cluster    Item1   Item2    Item 3

    1        5      6         3
    2        7      4         4
    3        1      2         3 
Run Code Online (Sandbox Code Playgroud)

我想用一个专栏来总结​​它们.谢谢你的推荐.

Sve*_*ein 5

您可以使用aggregate(dat是数据框的名称):

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)