R按ID号对所有列进行条件求和

R Conditional Summing of all columns by ID number

我在 RStudio 中有一个很大的数据框(15,000 行,300 列)而且一团糟。它看起来有点像这样:

ID Exam1 Exam2 Exam3..... Exam299
1 75 76 99 100
2 25 25 25 25
2 22 20 22 22
2 25 25 20 22
2 20 20 25 23
3 79 88 92 96

对于每个单独的学生 ID,我想添加所有单独的列,这样每个学生只有 1 行与 him/her 关联。它应该是这样的:

ID Exam1 Exam2 Exam3 Exam299
1 75 76 99 100
2 92 90 92 92
3 79 88 92 96

我试过的所有方法一次只对一列求和and/or合并条目而不对它们求和:

aggregate(ID~Exam1, data=df, c)

你可以使用这个:

df.sum <- aggregate(. ~ ID, data=df, FUN=sum)

您还可以使用 data.table 库:

require(data.table)
dt <- data.table(df)
dt.sum <- dt[, lapply(.SD, sum), by = ID]

我认为您也可以为此使用 dplyr 包,但我没有想出解决方案。