在 R 中有条件地用 NA 替换值
Conditionally replace values with NA in R
我正在尝试有条件地用 R 中的 NA 替换值。
这是我到目前为止使用 dplyr
包尝试过的内容。
数据
have <- data.frame(id = 1:3,
gender = c("Female", "I Do Not Wish to Disclose", "Male"))
先试试
want = as.data.frame(have %>%
mutate(gender = replace(gender, gender == "I Do Not Wish to Disclose", NA))
)
这给了我一个错误。
第二次尝试
want = as.data.frame(have %>%
mutate(gender = ifelse(gender == "I Do Not Wish to Disclose", NA, gender))
)
这运行没有错误,但将 Female
变成 1
,Male
变成 3
,I Do Not Wish to Disclose
变成 2
...
列为factor
的情况。转换为 character
它应该可以工作
library(dplyr)
have %>%
mutate(gender = as.character(gender),
gender = replace(gender, gender == "I Do Not Wish to Disclose", NA))
gender
中值的变化是当它被强制为其整数存储值时
as.integer(factor(c("Male", "Female", "Male")))
我会使用 dplyr
中非常简洁的函数 na_if()
。
library(dplyr)
have <- data.frame(gender = c("F", "M", "NB", "I Do Not Wish to Disclose"))
have |> mutate(gender2 = na_if(gender, "I Do Not Wish to Disclose"))
输出:
#> gender gender2
#> 1 F F
#> 2 M M
#> 3 NB NB
#> 4 I Do Not Wish to Disclose <NA>
由 reprex package (v2.0.1)
于 2022-04-19 创建
我正在尝试有条件地用 R 中的 NA 替换值。
这是我到目前为止使用 dplyr
包尝试过的内容。
数据
have <- data.frame(id = 1:3,
gender = c("Female", "I Do Not Wish to Disclose", "Male"))
先试试
want = as.data.frame(have %>%
mutate(gender = replace(gender, gender == "I Do Not Wish to Disclose", NA))
)
这给了我一个错误。
第二次尝试
want = as.data.frame(have %>%
mutate(gender = ifelse(gender == "I Do Not Wish to Disclose", NA, gender))
)
这运行没有错误,但将 Female
变成 1
,Male
变成 3
,I Do Not Wish to Disclose
变成 2
...
列为factor
的情况。转换为 character
它应该可以工作
library(dplyr)
have %>%
mutate(gender = as.character(gender),
gender = replace(gender, gender == "I Do Not Wish to Disclose", NA))
gender
中值的变化是当它被强制为其整数存储值时
as.integer(factor(c("Male", "Female", "Male")))
我会使用 dplyr
中非常简洁的函数 na_if()
。
library(dplyr)
have <- data.frame(gender = c("F", "M", "NB", "I Do Not Wish to Disclose"))
have |> mutate(gender2 = na_if(gender, "I Do Not Wish to Disclose"))
输出:
#> gender gender2
#> 1 F F
#> 2 M M
#> 3 NB NB
#> 4 I Do Not Wish to Disclose <NA>
由 reprex package (v2.0.1)
于 2022-04-19 创建