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

在R中按Size整数区间汇总DataFrame的Age列,选用什么函数?

解决方案

你不需要用rowwise()和mutate(),这类分组汇总需求用**group_by() + summarize()**组合更直接高效,核心思路是先按Size的整数部分分组,再对Age列求和。

步骤1:构造示例数据

先还原你的数据集:

df <- data.frame(
  Size = c(8, 8.5, 9, 9.5),
  `Age 1` = c(2, 4, 1, 3),
  `Age 2` = c(8, 7, 11, 2),
  `Age 3` = c(5, 9, 45, 0)
)

步骤2:分组汇总

用floor()函数提取Size的整数部分作为分组依据,再对所有Age列求和:

library(dplyr)

df_summary <- df %>%
  # 把Size转为整数部分,作为分组键
  group_by(Size = floor(Size)) %>%
  # 对所有以Age开头的列求和
  summarize(across(starts_with("Age"), sum), .groups = "drop")

运行后得到的结果就是你要的:

Size `Age 1` `Age 2` `Age 3`
1    8       6      15      16
2    9       4      13      45

补充说明

  • floor()函数会向下取整,刚好把8.5归为8、9.5归为9,完美匹配你的分组规则;
  • across(starts_with("Age"), sum)可以批量处理所有Age列,不用逐个列名写,扩展性更强;
  • .groups = "drop"是为了分组后返回普通数据框,避免保留分组属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:45:38