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

如何使用tidyverse按条件汇总指定行的n值并生成新行?

解决方法

用tidyverse工具可以通过筛选、汇总再合并的方式实现需求,代码如下:

library(tidyverse)

# 输入数据
df <- tibble(dif = c(0, 1, 2, 3), n = c(2, 4, 6, 8))

# 处理数据
result <- df %>%
  # 保留dif=0的原始行
  filter(dif == 0) %>%
  # 合并dif>=1的行的汇总结果
  bind_rows(
    df %>%
      filter(dif >= 1) %>%
      summarize(dif = 1, n = sum(n))
  )

# 查看结果
result

运行后输出为:

# A tibble: 2 × 2
    dif     n
  <dbl> <dbl>
1     0     2
2     1    18

步骤说明

  • 先用filter(dif == 0)提取原数据中dif为0的行,保留原始值;
  • 筛选出dif>=1的行后,用summarize将dif统一设为1,并对n列求和得到总和;
  • 最后用bind_rows把两部分数据合并,得到符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:31:51