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

R语言按多分组汇总统计family总数量的方法咨询

R实现方案

方法1:tidyverse套件实现(代码可读性高,推荐)

先确保安装并加载tidyverse:

# 首次使用先执行安装
# install.packages("tidyverse")
library(tidyverse)

生成分组统计长表

result_long <- df %>%
  # 列名包含空格时必须用反引号包裹避免语法报错
  group_by(station, `depth bin`) %>%
  summarise(
    family_total = sum(family, na.rm = TRUE), # na.rm=TRUE设置自动跳过缺失值
    .groups = "drop" # 统计完成后自动解除分组,避免后续操作异常
  )

转换为目标宽表结构(station为行、depth bin为列)

result_wide <- result_long %>%
  pivot_wider(
    names_from = `depth bin`,
    values_from = family_total,
    values_fill = 0 # 无数据的分组组合默认填充0
  )

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

生成分组统计长表

result_long <- aggregate(family ~ station + `depth bin`, data = df, FUN = sum, na.rm = TRUE)

转换为目标宽表结构

result_wide <- reshape(
  result_long,
  idvar = "station",
  timevar = "depth bin",
  direction = "wide",
  v.names = "family",
  fill = 0
)
# 可选:去除列名的默认前缀,和目标结构列名完全匹配
colnames(result_wide) <- gsub("^family\\.", "", colnames(result_wide))

补充说明:如果你需要统计的是每个分组下不同family的种类数而非数值总和,将上述代码中的sum(family, na.rm = TRUE)替换为n_distinct(family, na.rm = TRUE)(tidyverse方法),或把aggregate的FUN = sum改为FUN = function(x) length(unique(x))(基础R方法)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:15:06