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

R语言数据框唯一值统计及排班人员周工时计算需求

1. 在R语言中统计Data Frame的唯一值数量

根据不同的统计需求,这里分场景给出解决方案:

  • 统计整个Data Frame的所有唯一值总数:
    先把Data Frame转换成一维向量,再去重计数,代码如下:

    length(unique(unlist(your_dataframe)))
    

    解释:unlist()会把Data Frame拆成一个向量,unique()去除重复值,length()统计剩余元素的数量。

  • 统计每一列的唯一值数量:
    用sapply()遍历每一列,分别计算每列的唯一值数:

    sapply(your_dataframe, function(x) length(unique(x)))
    

    运行后会返回一个命名向量,每个元素对应一列的唯一值数量。

  • 统计特定列的唯一值数量:
    比如要统计Shift列的唯一值,直接针对该列操作:

    length(unique(your_dataframe$Shift))
    

2. 排班系统计算每位人员每周工作时长

针对你提供的排班Data Frame,我们可以用tidyverse工具包高效完成统计,步骤如下:

第一步:准备数据(构造可复现的示例)

如果你的数据已经存在,这步可以跳过,我先把你给出的表格转成可运行的R代码:

# 安装并加载tidyverse(如果没装过的话)
# install.packages("tidyverse")
library(tidyverse)

df <- data.frame(
  Shift = c("09-12", "12-15", "15-18", "18-21", "21-24", "24-03", "03-06", "06-09"),
  Monday = c("a", "b", "c", "d", "e", "f", "a", "b"),
  Tuesday = c("c", "d", "e", "f", "a", "b", "c", "d"),
  Wednesday = c("a", "b", "c", "e", "d", "f", "a", "b"),
  Thursday = c("c", "d", "e", "f", "d", "e", "a", "f"),
  Friday = c("b", "a", "d", "e", "c", "a", "b", "d"),
  Saturday = c("b", "a", "e", "f", "d", "b", "a", "e"),
  Sunday = c("b", "e", "f", "a", "d", "b", "e", "f")
)

第二步:将宽格式数据转成长格式

原数据是宽格式(每列对应一个星期几),转成长格式后更便于按人员分组统计:

df_long <- df %>%
  pivot_longer(cols = -Shift,  # 除了Shift列,其他列都转成键值对
               names_to = "day",  # 原列名(星期几)存到day列
               values_to = "person")  # 原单元格的人员存到person列

第三步:添加工时列

根据规则,24-03班次算4小时,其他班次默认3小时:

df_long <- df_long %>%
  mutate(hours = ifelse(Shift == "24-03", 4, 3))

第四步:按人员分组计算总工时

最后分组求和,得到每个人每周的总工作时长:

total_weekly_hours <- df_long %>%
  group_by(person) %>%
  summarise(total_hours = sum(hours)) %>%
  arrange(person)  # 按人员字母排序,方便查看

# 查看结果
print(total_weekly_hours)

运行后你会得到类似这样的结果:

# A tibble: 6 × 2
  person total_hours
  <chr>        <dbl>
1 a               34
2 b               35
3 c               32
4 d               35
5 e               34
6 f               30

内容的提问来源于stack exchange,提问作者user9532692

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:19:57