折叠数据框行

时间:2013-11-27 23:14:38

标签: r dataframe collapse

我有一个数据框,a:

> a
  GID         1          2           3          4           5          6           7          8          9          10
1   A 0.2616485 -0.1521032 -0.01281316 0.05029606 -0.01940657  0.1624178  0.14714370 0.08642461 -0.1191233 -0.01845165
2   A 0.0000000  0.0000000  0.00000000 0.00000000  0.00000000  0.0000000  0.00000000 0.00000000  0.0000000  0.00000000
3   B 0.1107565  0.1632392 -0.08760204 0.04475998 -0.10835387 -0.0827655 -0.08058794 0.15288650 -0.1120538 -0.02297707
4   B 0.0000000  0.0000000  0.00000000 0.00000000  0.00000000  0.0000000  0.00000000 0.00000000  0.0000000  0.00000000

我正在寻找一种方法来获得一个新的数据帧(b),它将数据帧a的行与GID列中的行相加:

> b
  GID         1          2           3          4           5          6           7          8          9          10
1   A 0.2616485 -0.1521032 -0.01281316 0.05029606 -0.01940657  0.1624178  0.14714370 0.08642461 -0.1191233 -0.01845165
3   B 0.1107565  0.1632392 -0.08760204 0.04475998 -0.10835387 -0.0827655 -0.08058794 0.15288650 -0.1120538 -0.02297707 

优选使用碱溶液。

1 个答案:

答案 0 :(得分:4)

使用aggregate

aggregate(.~GID,data=dat,sum)

编辑

为了获得更好的效果,您可以尝试data.table

library(data.table)
DT <- as.data.table(dat)

DT[,lapply(.SD,sum),by='GID']