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

如何用tidyverse为分组数据框添加同组一致新列并删除指定行

解决方案

可以用tidyverse中的dplyr包完成需求,完整代码如下:

library(tidyverse)

df <- data.frame(ID = c(rep(1, 3), rep(2, 3)),
                 F = factor(c("A","B","X","C","D","X")),
                 V = c(30, 32, 25, 31, 37, 24)
                  )

df_result <- df %>%
  group_by(ID) %>%
  mutate(New = V[F == "X"]) %>%
  filter(F != "X") %>%
  ungroup()

print(df_result)

代码说明

  • group_by(ID):按ID分组,确保后续操作在每个独立的ID组内执行
  • mutate(New = V[F == "X"]):在每个分组中,提取F == "X"行对应的V值,由于每组仅存在一行F=="X",该值会自动填充到当前组所有行的New列
  • filter(F != "X"):过滤掉所有F为X的行,完成删除需求
  • ungroup():取消分组状态,避免后续数据操作受到分组约束(可根据实际需求选择是否保留)

运行后输出结果:

# A tibble: 4 × 4
     ID F         V   New
  <dbl> <fct> <dbl> <dbl>
1     1 A        30    25
2     1 B        32    25
3     2 C        31    24
4     2 D        37    24

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:05:21