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

Ric*_*cky 5 r dplyr

而不是编写和读取数据框来填充此方法中的所有空因子,

na.strings=c("","NA")
Run Code Online (Sandbox Code Playgroud)

我想将一个函数应用于所有列,并用NA替换空.到目前为止,我已经选择了因子列,但不知道下一步该做什么.

df %>% select_if(is.factor) %>% ....
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点,最好使用dplyr和/或apply方法

akr*_*run 8

我们可以用 mutate_if

df <- df %>%
         mutate_if(is.factor, funs(factor(replace(., .=="", NA))))
Run Code Online (Sandbox Code Playgroud)

或者使用dplyr 0.8.0我们可以分配特定funslist

df %>% 
    mutate_if(is.factor, na_if, y = "") 
Run Code Online (Sandbox Code Playgroud)

数据

df %>%
   mutate_if(is.factor, list(~ na_if(., "")))
Run Code Online (Sandbox Code Playgroud)

  • @Frederick 感谢您的通知,我更新了。我使用 `na_if` 来缩短它。 (2认同)