如何聚合数据框中多列的重复行

Euc*_*des 5 aggregate r dataframe

我有一个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
Run Code Online (Sandbox Code Playgroud)

我想对 中具有相同值的行进行求和Gene,以获得如下结果:

    Gene      Cell1    Cell2    Cell3     
1      A          7        9       17  
2      B          2        7        8
3      C          1        4        3
Run Code Online (Sandbox Code Playgroud)

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

aggregate(df[,-1], list(df[,1]), FUN = sum)
Run Code Online (Sandbox Code Playgroud)

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

luk*_*keA 6

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

会给你你正在寻找的输出。

  • @ManojKumar 谢谢。你得到了一个数据表对象;那里的索引有点不同。所以你可以做`aggregate(df[,-1], list(Gene=df[[1]]), FUN = sum)`。但是,如果您无论如何都有一个数据表,您可能希望利用其聚合数据的优势;`df[, lapply(.SD, sum), by=Gene]`。 (2认同)