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

R语言如何提取数据框50-200行计算指定年龄分组的人数占比

R语言实现指定行区间年龄分组占比统计方案

方法1:基础R实现(无需额外安装依赖包)

  • 第一步:提取第50至200行的样本子集
    代码:df_sample <- df[50:200, ]
  • 第二步:对Age列按指定区间分箱
    # 定义分组断点和标签
    age_breaks <- c(14, 20, 25, 30, 35)
    age_labels <- c("15-20", "21-25", "26-30", "31-35")
    # 生成分组字段
    df_sample$age_group <- cut(df_sample$Age, breaks = age_breaks, labels = age_labels, include.lowest = TRUE)
    
  • 第三步:统计各组人数占比
    代码:age_ratio <- round(prop.table(table(df_sample$age_group)) * 100, 2)
    执行后会直接输出四个年龄组的百分比占比,保留2位小数。

方法2:tidyverse生态dplyr包实现(代码更简洁易读)

如果你已经安装tidyverse系列包,可以用管道符逻辑实现:

library(dplyr)

df %>%
  slice(50:200) %>% # 提取第50到200行数据
  filter(!is.na(Age)) %>% # 可选:过滤Age列的缺失值,避免统计偏差
  mutate(
    age_group = cut(
      Age,
      breaks = c(14, 20, 25, 30, 35),
      labels = c("15-20", "21-25", "26-30", "31-35"),
      include.lowest = TRUE
    )
  ) %>%
  count(age_group, name = "人数") %>%
  mutate(占比 = round(人数 / sum(人数) * 100, 2))

注意事项:

  1. 超出15-35范围的年龄值会被标记为NA,统计时默认排除,如果你需要统计这部分“其他”群体,可调整breaks参数增加区间即可
  2. 如果Age列是字符格式,需先转为数值格式:df$Age <- as.numeric(df$Age)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:39:01