【发布时间】:2021-12-18 11:35:55
【问题描述】:
我想使用 dplyr 包中的 na_if 函数列出我想要转换为丢失的 tibble 中的所有事件,但我似乎没有正确。有什么线索吗?
library(dplyr)
set.seed(123)
df <- tibble(
a1 = c("one", "three", "97", "twenty", "98"),
a2 = c("R", "Python", "99", "Java", "97"),
a3 = c("statistics", "Data", "Programming", "99", "Science"),
a4 = floor(rnorm(5, 80, 2))
)
#--- The long route
df1 <- df %>%
mutate(across(where(is.character), ~na_if(., "97")),
across(where(is.character), ~na_if(., "98")),
across(where(is.character), ~na_if(., "99")))
#---- Trial
df2 <- df %>%
mutate(across(where(is.character),
~na_if(., c("97", "98", "99"))))
【问题讨论】:
-
来自上面的欺骗,适合您的用例:
df2 <- df %>% mutate(across(where(is.character), ~ifelse( . %in% c("97", "98", "99"), NA, .)))