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

如何在R中基于多条件汇总计数:按物种分组统计长度区间样本数

解决方案

你可以在dplyr的summarize函数中直接通过条件判断+求和的方式,一次性统计每个分组下符合不同长度条件的样本数,无需多次筛选合并。具体代码如下:

完整代码

library(dplyr)

# 示例数据
df <- data.frame(Species = c("BRK","BRK","BRK","RGN","BRK","RGN"),
                 Length = c(4.2,4.4,5.3,1.6,5.9,8.2))

# 分组汇总
df1 <- df %>%
  group_by(Species) %>%
  summarize(
    Gtr_4.5 = sum(Length > 4.5, na.rm = TRUE),
    Less_4.5 = sum(Length < 4.5, na.rm = TRUE)
  )

代码说明

  • group_by(Species):按物种对数据分组,保持你原有逻辑。
  • sum(Length > 4.5):Length > 4.5会生成一个布尔向量(满足条件为TRUE,不满足为FALSE),R中TRUE等价于1、FALSE等价于0,sum()会直接统计满足条件的样本数量。
  • na.rm = TRUE:可选参数,用于忽略数据中可能存在的缺失值(NA),避免汇总结果出现NA。

运行结果

执行代码后得到的df1与你期望的格式完全一致:

# A tibble: 2 × 3
  Species Gtr_4.5 Less_4.5
  <chr>     <int>    <int>
1 BRK           2        2
2 RGN           1        1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:14:57