在数据集中,我试图将一年中的总工作时数加在一起,而我的报告则逐行列出。
本质上,它类似于在Excel中使用sumproduct的内容(如果名称与前一列匹配,则仅添加小时数)
用于执行类似操作的R中的代码是什么?
E.G。
John Smith 8
John Smith 8
Hailey 9
Hailey 10
我想创建另一个列,将John的总数计算为16,将Hailey计算为19。
答案 0 :(得分:2)
使用aggregate
Hours = read.table(text="Name hours
'John Smith' 8
'John Smith' 8
Hailey 9
Hailey 10",
header=TRUE)
aggregate(Hours$hours, list(Hours$Name), sum)
Group.1 x
1 Hailey 19
2 John Smith 16
答案 1 :(得分:0)
使用data.table:
library(data.table)
setDT(mydata)
mydata[, totalHours := sum(hourCol), Name]
这应该可以解决问题!
答案 2 :(得分:0)
这是使用dplyr的可能解决方案之一:
doBy
答案 3 :(得分:0)
您可以使用require(doBy)
summaryBy(hours_field ~ name_field, data = mydata, FUN = sum)
包,如下所示:
tenant