You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中按姓名汇总工作时长?

在R中按姓名汇总工作时长并添加总计时长列

先构建示例数据框

data <- data.frame(
  Name = c("John", "John", "Mary", "Bob", "Bob", "Bob"),
  `Job #` = c(1, 2, 1, 1, 2, 3),
  `Job duration` = c(10, 5, 30, 7, 7, 7)
)

方法一:使用Base R的ave()函数

ave()函数可直接按分组计算并返回与原数据等长的结果,适合直接添加新列:

data$job_duration_total <- ave(data$`Job duration`, data$Name, FUN = sum)

方法二:使用dplyr包(tidyverse风格)

如果习惯tidyverse语法,用分组+mutate操作更直观:

# 未安装dplyr时先执行安装
install.packages("dplyr")
library(dplyr)

# 分组计算并添加总计时长列
data <- data %>%
  group_by(Name) %>%
  mutate(job_duration_total = sum(`Job duration`)) %>%
  ungroup()

执行后,data的job_duration_total列会对应每个姓名的工作时长总和:John为15,Mary为30,Bob为21。

内容的提问来源于stack exchange,提问作者Jérôme Fortier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:47:04