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

在R中使用summarise()并按条件保留其他列的方法

按条件保留列并分组求和的实现方法

现有如下数据框:

df <- data.frame(x = c("a", "a"),
                 y = c("a", "b"),
                 z = c(4, 5))

对应输出:

x y z
a a 4
a b 5

使用dplyr的summarise()按x分组对z求和的代码如下:

df %>% 
  group_by(x) %>% 
  summarise(z = sum(z))

得到结果:

x z
a 9

现在需要在求和后保留x=y对应的y列,期望输出:

x y z
a a 9

可以在summarise()中指定y的取值,直接提取分组内满足x == y的y值即可,代码如下:

df %>% 
  group_by(x) %>% 
  summarise(
    y = y[x == y],
    z = sum(z)
  )

如果分组内存在多个x == y的情况,也可以用first(y[x == y])来取第一个符合条件的值,保证结果唯一。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:45:01