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

R语言中如何将特定变量的符合条件观测值设置为NA

问题原因

原代码的replace函数缺少第一个参数,也就是要修改的目标变量向量。replace的标准语法为replace(目标向量, 匹配条件, 替换值),你之前的写法没有传入每个Q开头的变量作为修改对象,因此无法生效。

正确实现方式

方法1:适配旧版dplyr的mutate_at写法

在replace中补入当前遍历变量的占位符.即可:

Fusion_2_nom <- Fusion_2_nom %>%
  mutate_at(vars(starts_with("Q")),
            ~replace(., token %in% c("3d4faa","214c61", "a786b6", "52a719", "1f9887", "9b6347"), NA))

这里~用来定义匿名函数,.代表当前正在处理的每一个以Q开头的变量。

方法2:新版dplyr推荐的across写法

dplyr 1.0.0之后mutate_at系列函数已软弃用,更推荐用across实现相同逻辑,后续兼容性更好:

Fusion_2_nom <- Fusion_2_nom %>%
  mutate(across(starts_with("Q"),
                ~ifelse(token %in% c("3d4faa","214c61", "a786b6", "52a719", "1f9887", "9b6347"), NA, .)))

两种写法的执行效果完全一致,都会把指定token对应的所有Q开头变量的取值替换为NA。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:36:03