通过在多列中用 NA 替换“<LOD”来整理数据
tidy data by replacing "<LOD" with NA in multiple columns
我得到了一些科学数据,这些数据已从 CSV 文件导入到 R
不幸的是,我的值是“
我知道变异和
tb<-tibble(
Mg=c(1,2,4,5,"<LOD"),
Hg=c(5,10,15,"<LOD",11),
Fe=c(15,"<LOD",10,4,23)
)
我知道这样的方法可行,但我有 100 个变量,我需要对所有变量都执行此操作。有谁知道我如何快速将它应用到我的所有专栏我试过 Mutate_all 但 Str_replace 需要定义字符串。
tb%>%mutate(Mg=str_replace(Mg,string="<LOD", replacement = NA_character_))
谢谢
na_if
可以在完整数据集上明智地执行此列
library(dplyr)
tb <- tb %>%
na_if("<LOD") %>%
type.convert(as.is = TRUE)
-输出
tb
# A tibble: 5 × 3
Mg Hg Fe
<int> <int> <int>
1 1 5 15
2 2 10 NA
3 4 15 10
4 5 NA 4
5 NA 11 23
也可以通过across
循环完成
tb <- tb %>%
mutate(across(everything(), ~ as.numeric(na_if(.x, "<LOD"))))
我得到了一些科学数据,这些数据已从 CSV 文件导入到 R
不幸的是,我的值是“ 我知道变异和 我知道这样的方法可行,但我有 100 个变量,我需要对所有变量都执行此操作。有谁知道我如何快速将它应用到我的所有专栏我试过 Mutate_all 但 Str_replace 需要定义字符串。 谢谢tb<-tibble(
Mg=c(1,2,4,5,"<LOD"),
Hg=c(5,10,15,"<LOD",11),
Fe=c(15,"<LOD",10,4,23)
)
tb%>%mutate(Mg=str_replace(Mg,string="<LOD", replacement = NA_character_))
na_if
可以在完整数据集上明智地执行此列
library(dplyr)
tb <- tb %>%
na_if("<LOD") %>%
type.convert(as.is = TRUE)
-输出
tb
# A tibble: 5 × 3
Mg Hg Fe
<int> <int> <int>
1 1 5 15
2 2 10 NA
3 4 15 10
4 5 NA 4
5 NA 11 23
也可以通过across
tb <- tb %>%
mutate(across(everything(), ~ as.numeric(na_if(.x, "<LOD"))))