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

R语言如何将多条件按变量唯一值汇总的操作简化为单条语句

解决方案

你要的单语句实现可以直接用条件聚合实现,不需要拆分中间表再关联,代码如下:

dams <- dam_counts %>%
  # 先过滤公共条件,减少后续计算量
  filter(
    Year %in% 2015:2021,
    Dam %in% c("BON", "MCN"),
    Species == "Chinook",
    LifeStage == "Adult"
  ) %>%
  group_by(Year) %>%
  summarize(
    # 针对不同坝单独加对应的JulianDay过滤条件求和
    BON = sum(Count[Dam == "BON" & JulianDay %in% 1:167], na.rm = TRUE),
    MCN = sum(Count[Dam == "MCN" & JulianDay %in% 1:175], na.rm = TRUE)
  )

补充说明

你提到的across()函数更适合批量处理多列/多组规则统一的汇总场景,你当前只有两个坝的汇总规则,用上面的条件求和写法可读性最高。如果后续需要批量处理更多坝的不同过滤规则,可以提前把坝名和对应的JulianDay范围存为配置表,再结合pivot_wider实现批量汇总,不用重复写求和逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:06:05