按组求和并附加结果

数据集HAVE是来自Recess字符的电话数据的详细边缘列表:

Student   Friend       nCalls
TJ        Spinelli          3
TJ        Gretchen          7
TJ        Gus               6
TJ        Vince             8
TJ        King Bob          1
TJ        Mikey             2
Spinelli  TJ                3
Spinelli  Vince             2
Randall   Ms. Finster      17

数据集NEED包含HAVE的所有原始列,但包含一个新变量nCallsPerStudent,其确切含义是:

Student   Friend       nCalls   nCallsPerStudent
TJ        Spinelli          3                 27
TJ        Gretchen          7                 27
TJ        Gus               6                 27
TJ        Vince             8                 27
TJ        King Bob          1                 27
TJ        Mikey             2                 27
Spinelli  TJ                3                  5
Spinelli  Vince             2                  5
Randall   Ms. Finster      17                 17

我如何从HAVE到NEED?

最佳答案
我们可以按“学生”分组并进行变异以创建新列

library(dplyr)
df %>%
  group_by(Student) %>%
  mutate(nCallsPerStudent = sum(nCalls))

或使用基数R

df$nCallsPerStudent <- with(df, ave(nCalls, Student, FUN = sum))

转载注明原文:按组求和并附加结果 - 代码日志