使用正则表达式将特定数字设置为 NA?

Using regex to set a specific digit to NA?

df 样本:

   LASSO_deviance LASSO_AUC
68          0.999     0.999
2           1.000     1.000
39          1.000     1.005
7            1.02       1.2

我想将包含 1.000 的单元格按优先顺序设置为 NA0

我试过类似的方法:df %>% mutate_at(vars(LASSO_deviance, LASSO_AUC), funs(gsub(pattern = "1{1}[^.{1,}]", 0, x = .))) 没有成功。

tt <- "LASSO_deviance LASSO_AUC
68          0.999     0.999
2           1.000     1.000
39          1.000     1.005
7            1.02       1.2"

dat <- read.table(text = tt, header = T)

不需要正则表达式,因为您可以简单地找到数据等于 1.000 的位置

dat[dat == 1.000] <- NA # or dat[dat == 1.000] <- 0
dat

# LASSO_deviance LASSO_AUC
# 68          0.999     0.999
# 2              NA        NA
# 39             NA     1.005
# 7           1.020     1.200