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

使用dplyr与tibble实现基于列值的条件求和合并两行操作

解决代码

library(tidyverse)

# 构造测试数据,设置随机种子保证结果可复现
set.seed(123)
data <- tibble(Field = rep(c("foo", "bar"), each=4),
               Item = rep(c("a", "b", "c", "d"), 2),
               Value = runif(8))

# 核心处理逻辑
result <- data %>%
  group_by(Field) %>%
  mutate(Value = ifelse(Item == "b", Value + Value[Item == "a"], Value)) %>%
  filter(Item != "a") %>%
  ungroup()

逻辑说明

  • 先按Field分组,保证两个分组的操作互不干扰
  • mutate阶段仅修改Item为b的行:取当前分组内Item为a的Value值叠加到原有b的Value上,其余Item的数值保持不变
  • 过滤掉所有Item为a的行,最后用ungroup解除分组,避免后续操作受分组状态影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:27:04