R 如何在名称旁边添加总小时数
在数据集中,我试图将一年中的总工作小时数相加,而我的报告则逐行列出 本质上,它类似于在Excel中使用sumproduct(仅在名称与前一列匹配时添加小时数) R中用来做类似事情的代码是什么 例如 我想创建另一列,计算John的总数为16,Hailey的总数为19。使用data.table:R 如何在名称旁边添加总小时数,r,R,在数据集中,我试图将一年中的总工作小时数相加,而我的报告则逐行列出 本质上,它类似于在Excel中使用sumproduct(仅在名称与前一列匹配时添加小时数) R中用来做类似事情的代码是什么 例如 我想创建另一列,计算John的总数为16,Hailey的总数为19。使用data.table: library(data.table) setDT(mydata) mydata[, totalHours := sum(hourCol), Name] 这应该能奏效 使用data.table: libr
library(data.table)
setDT(mydata)
mydata[, totalHours := sum(hourCol), Name]
这应该能奏效 使用data.table:
library(data.table)
setDT(mydata)
mydata[, totalHours := sum(hourCol), Name]
这应该能奏效 这是使用dplyr的可能解决方案之一:
library(dplyr)
df <- data.frame(names = c("Emily", "John", "Emily", "Mike", "John"), hours = c(6, 7, 8, 5, 6))
df %>%
group_by(names) %>%
summarise(totals = sum(hours)) -> d
库(dplyr)
df%
分组人(姓名)%>%
总结(总计=总计(小时))->d
这是使用dplyr的可能解决方案之一:
library(dplyr)
df <- data.frame(names = c("Emily", "John", "Emily", "Mike", "John"), hours = c(6, 7, 8, 5, 6))
df %>%
group_by(names) %>%
summarise(totals = sum(hours)) -> d
库(dplyr)
df%
分组人(姓名)%>%
总结(总计=总计(小时))->d
您可以像这样使用doBy
软件包:
require(doBy)
summaryBy(hours_field ~ name_field, data = mydata, FUN = sum)
您可以像这样使用
doBy
包:
require(doBy)
summaryBy(hours_field ~ name_field, data = mydata, FUN = sum)
使用聚合的基本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
使用聚合的基本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
将来,为了清晰起见,请尝试使用
dput(mydata)
添加数据样本。将来,为了清晰起见,请尝试使用dput(mydata)
添加数据样本。它与aggregate
不同吗?它应该产生与聚合(mydata$hours\u字段,list(mydata$name\u字段),sum)类似的结果
aggregate
还可以使用语法aggregate(hours\u field~name\u field,data=mydata,FUN=sum)
似乎doBy
提供了有趣的附加参数,但是在这个简单的例子中,我相信它是严格等价的,它不同于aggregate
?它应该产生与aggregate(mydata$hours\u字段,list(mydata$name\u字段),sum)相同的结果aggregate
也适用于语法聚合(hours\u字段~name\u字段,data=mydata,FUN=sum)
似乎doBy
提供了有趣的附加参数,但在这个简单的例子中,我相信它是严格等价的