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

咨询:如何用dplyr直接实现n<2行合并为‘other’并求和

嘿,这事儿用dplyr可以非常简洁地搞定!我给你写个优化后的方案,附示例和解释:

首先假设你的数据集长这样(你可以把列名换成自己实际的列名):

library(dplyr)

# 模拟你的样本数据集
sample_df <- tibble(
  group = c("X", "Y", "Z", "W", "V"),
  n = c(6, 2, 1, 0, 5)
)

接下来就是核心的dplyr代码,几行就搞定合并和求和:

processed_df <- sample_df %>%
  # 把n<2的组统一重命名为"other"
  mutate(group = if_else(n < 2, "other", group)) %>%
  # 按修改后的组名分组,对n求和
  group_by(group) %>%
  summarise(total_n = sum(n), .groups = "drop")

代码解释:

  • mutate + if_else:用简洁的条件判断,直接把所有n小于2的行的分组列改成"other",其他行保留原分组名;如果需要更复杂的多条件判断,换成case_when也完全可行。
  • group_by(group):基于修改后的分组列聚合数据。
  • summarise(total_n = sum(n)):对每个分组的n求和,.groups = "drop"用来自动取消分组状态,避免后续操作因为残留分组逻辑踩坑。

运行后你会得到这样的结果:

processed_df
#> # A tibble: 4 × 2
#>   group total_n
#>   <chr>   <dbl>
#> 1 X           6
#> 2 Y           2
#> 3 V           5
#> 4 other       1

如果你的分组列不叫group,或者计数列不叫n,直接替换成你实际的列名就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:52:12