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

如何基于ID列表匹配替换R语言DataFrame中多列的指定值

R语言实现指定ID行的敏感字段脱敏替换

首先构造你给出的示例DataFrame及ID列表:

# 示例数据构造
df <- data.frame(
  ID = c(1,2,3,4),
  FirstName = rep("John",4),
  LastName = rep("Smith",4),
  Orders = c(3,7,9,12),
  Age = c(30,8,317,20)
)
# 预定义的待匹配ID列表
IDList <- c(1,3,74,312)

方法1:基础R实现(无需额外安装包)

直接通过行索引匹配赋值即可:

# 匹配ID在列表中的行
match_rows <- df$ID %in% IDList
# 对匹配行的指定字段统一赋值
df[match_rows, c("FirstName", "LastName", "Age")] <- "Redacted"

方法2:dplyr实现(适合tidyverse生态用户)

如果习惯用dplyr的管道语法,可以用如下写法:

library(dplyr)
df <- df %>%
  mutate(
    # 对三个指定字段做条件替换
    across(c(FirstName, LastName, Age), 
           ~ifelse(ID %in% IDList, "Redacted", .x))
  )

注意:如果原数据中Age为数值类型,替换为字符串"Redacted"后该列会自动转换为字符类型,属于正常预期
运行上述任意一种方法后,输出df即可得到你需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:15:03