gpt4 book ai didi

R dplyr方法用NA替换所有空因子

转载 作者:行者123 更新时间:2023-12-04 17:43:59 26 4
gpt4 key购买 nike

不是在此方法中写入和读取数据帧来填充所有空因子,

na.strings=c("","NA")

我只想对所有列应用一个函数,并用 NA 替换空容器。到目前为止,我已经选择了因子列,但不知道下一步该怎么做。
df %>% select_if(is.factor) %>% ....

我如何才能做到这一点,最好使用 dplyr 和/或应用方法

最佳答案

我们可以使用 mutate_if

df <- df %>%
mutate_if(is.factor, funs(factor(replace(., .=="", NA))))

dplyr 0.8.0 ,我们也可以
df %>% 
mutate_if(is.factor, na_if, y = "")

或更改 funs (正如评论中提到的@Frederick 一样,它已被弃用为 list)
df %>%
mutate_if(is.factor, list(~ na_if(., "")))

或使用 base R我们可以分配具体的 levelsNA
j1 <- sapply(df, is.factor)
df[j1] <- lapply(df[j1], function(x) {is.na(x) <- levels(x)==""; x})

数据
df <- data.frame(col1 = c("", "A", "B", ""), col2 = c("A", "", "", "C"),
col3 = 1:4)

关于R dplyr方法用NA替换所有空因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43059897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com