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

在R中如何将count列值大于n的行的value求和合并为一行

方法1:基础R实现

首先定义阈值n,拆分原数据后拼接汇总行即可,注意要把数值型的count列转成字符型,避免和带特殊符号的汇总行count值类型冲突:

n <- 3
# 提取count小于等于n的部分
df_part1 <- df[df$count <= n, ]
# 计算count大于n的value总和
sum_val <- sum(df$value[df$count > n])
# 拼接得到最终结果
df_res <- rbind(
  df_part1,
  data.frame(count = paste0(">", n), value = sum_val)
)

运行结果如下:

count value
1     0   100
2     1    50
3     2    60
4     3    70
5    >3    16

方法2:dplyr实现

适合tidyverse技术栈场景,通过分组汇总实现需求:

library(dplyr)
n <- 3
df_res <- df %>%
  # 对count列做归类,大于n的统一替换为>n格式的字符串
  mutate(count = if_else(count > n, paste0(">", n), as.character(count))) %>%
  # 按count分组求和
  group_by(count) %>%
  summarise(value = sum(value), .groups = "drop") %>%
  # 调整排序,保证汇总行在最后
  arrange(ifelse(count == paste0(">", n), Inf, as.integer(count)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:48:02