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

如何用dplyr的mutate+ifelse关联两个DataFrame生成新列

解决方法

要实现这个逻辑,关键是先把A和B通过col2列关联起来,再做条件判断,具体代码如下:

library(dplyr)

# 假设B表包含col2(用于匹配)和col3(判断阈值的列)
vals_for_plot <- A %>%
  # 左连接B表,给B的col3加后缀避免重名冲突
  left_join(B, by = "col2", suffix = c("", "_from_B")) %>%
  # 根据B表的col3值生成目标新列
  mutate(col3 = ifelse(col3_from_B < 0.05, "other", col2)) %>%
  # 移除临时用到的B表列(可选,根据需求决定是否保留)
  select(-col3_from_B)

如果A里有部分col2值在B中找不到匹配项,可以在ifelse里补充处理逻辑,默认保留原col2值:

mutate(col3 = ifelse(!is.na(col3_from_B) & col3_from_B < 0.05, "other", col2))

这样就完成了需求:当A的col2对应B的col3值小于0.05时,新列col3设为"other",否则沿用A的col2值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:10:36