更新时间: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.