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

基于多条件为DataFrame分配类别并按类别汇总count值

解决DataFrame分组分类汇总并填充缺失类别的问题

步骤1:加载必要工具包

先安装并加载tidyverse包,它包含了数据处理所需的dplyr和tidyr工具:

library(tidyverse)

步骤2:生成category字段

根据给定的时间规则,用case_when为每条数据匹配对应的类别:

df_final <- df %>%
  mutate(
    category = case_when(
      time <= 10 ~ 1,
      time > 10 & time <= 20 ~ 2,
      time > 20 & time <= 30 ~ 3,
      time > 30 ~ 4
    )
  )

执行后会得到带category字段的df_final,每条数据都对应正确的类别标签。

步骤3:构建全类别组合

为了保证每个name都覆盖所有4个category(哪怕没有对应数据),先生成name和category的全量组合:

full_categories <- expand_grid(name = unique(df$name), category = 1:4)

步骤4:汇总并填充缺失值

按name和category汇总count总和,再与全组合表做右连接,缺失类别的汇总值会自动填充为NA:

df_ultimate <- df_final %>%
  group_by(name, category) %>%
  summarise(total_count = sum(count), .groups = "drop") %>%
  right_join(full_categories, by = c("name", "category")) %>%
  arrange(name, category)

最终输出结果

运行上述代码后,df_ultimate的内容如下:

name category total_count
1     A        1          24
2     A        2          17
3     A        3          30
4     A        4          NA
5     B        1           7
6     B        2          NA
7     B        3          18
8     B        4          14
9     C        1          22
10    C        2          12
11    C        3          13
12    C        4          NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:50:26