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

如何在R语言中批量将含ABC/DEF的列值替换为0?

自动替换列名含ABC/DEF的列值为0

当然可以不用手动选择列,通过正则匹配列名就能批量处理,下面是两种常用的R语言实现方法:

方法一:基础R原生写法

利用grepl函数匹配列名,筛选出目标列后直接赋值为0:

# 你的原始数据框
df <- data.frame(
  FFF = c(34L, 22L, 22L), 
  ABC_1 = 3:5, 
  DEF_2 = rep(2L, 3L), 
  KKL = c(3L, 2L, 234L)
)

# 匹配列名包含ABC或DEF的列
target_cols <- grepl("ABC|DEF", colnames(df))
# 将这些列的数值全部替换为0
df[target_cols] <- 0

# 查看结果
df

运行后得到的结果和你期望的df2完全一致。

方法二:tidyverse(dplyr)写法

如果你常用tidyverse工具包,用dplyr::across结合matches函数更简洁:

library(dplyr)

df <- df %>% 
  mutate(across(matches("ABC|DEF"), ~0))

其中matches("ABC|DEF")负责筛选列名符合正则规则的列,across对这些列统一执行替换为0的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 16:52:13