如何在名称旁边添加总小时数

时间:2018-05-29 21:26:16

标签: r

在数据集中,我试图将一年中的总工作时数加在一起,而我的报告则逐行列出。

本质上,它类似于在Excel中使用sumproduct的内容(如果名称与前一列匹配,则仅添加小时数)

用于执行类似操作的R中的代码是什么?

E.G。

John Smith   8
John Smith   8
Hailey       9
Hailey      10

我想创建另一个列,将John的总数计算为16,将Hailey计算为19。

4 个答案:

答案 0 :(得分:2)

使用aggregate

的基础R解决方案
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