如何在数据框中聚合具有多个列的重复行

时间:2017-05-28 17:51:54

标签: r dataframe aggregate

我有data.frame看起来像这样(但是有更多的列和行):

    Gene      Cell1    Cell2    Cell3     
1      A          2        7        8 
2      A          5        2        9 
3      B          2        7        8
4      C          1        4        3

我想在Gene中对具有相同值的行求和,以便得到类似的内容:

    Gene      Cell1    Cell2    Cell3     
1      A          7        9       17  
2      B          2        7        8
3      C          1        4        3

根据之前问题的答案,我尝试使用aggregate,但我无法理解如何获得上述结果。这就是我尝试过的:

aggregate(df[,-1], list(df[,1]), FUN = sum)

有没有人知道我做错了什么?

2 个答案:

答案 0 :(得分:3)

dplyr

library(dplyr)
df %>%
  group_by(Gene) %>%
  summarise_all(sum) %>%
  data.frame() -> newdf # so that newdf can further be used, if needed

答案 1 :(得分:2)

aggregate(df[,-1], list(Gene=df[,1]), FUN = sum)
#   Gene Cell1 Cell2 Cell3
# 1    A     7     9    17
# 2    B     2     7     8
# 3    C     1     4     3

将为您提供所需的输出。