且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

R:用 NA 替换多列数据帧中的多个值

更新时间:2023-02-18 11:28:59

您也可以使用 replace 来做到这一点:

You can also do this using replace:

sel <- grepl("var",names(df))
df[sel] <- lapply(df[sel], function(x) replace(x,x %in% 3:4, NA) )
df

#  name foo var1 var2
#1    a   1    1   NA
#2    a   2    2   NA
#3    a   3   NA   NA
#4    b   4   NA   NA
#5    b   5    5   NA
#6    b   6    6   NA
#7    c   7    7    5
#8    c   8    8    5
#9    c   9    9    5

一些使用百万行数据样本的快速基准测试表明这比其他答案更快.

Some quick benchmarking using a million row sample of data suggests this is quicker than the other answers.