使用dplyr仅对某些列执行操作

使用dplyr仅对某些列执行操作,r,dplyr,R,Dplyr,我想将字符变量中的字符串转换为NA。我可以这样做: d3 <- d3 %>% select_if(is.character) %>% na_if(., "Missing") %>% na_if(., "not done") 如果你能给我一些建议,我将不胜感激。谢谢。如果我们希望有选择地在字符列上执行此操作,同时保留其他列,请使用mutate和交叉 library(dplyr) # version 1.0.4 d3

我想将字符变量中的字符串转换为NA。我可以这样做:

d3 <- d3 %>%
  select_if(is.character) %>%
  na_if(., "Missing") %>%
  na_if(., "not done")  

如果你能给我一些建议,我将不胜感激。谢谢。

如果我们希望有选择地在
字符
列上执行此操作,同时保留其他列,请使用
mutate
交叉

library(dplyr) # version 1.0.4
d3 <- d3 %>%
   mutate(across(where(is.character), ~ 
                na_if(., "Missing") %>% 
                na_if("not_done")))

在较新版本中,
如果可以替换为

d3 %>%
    select(where(is.character))
library(dplyr) # version 1.0.4
d3 <- d3 %>%
   mutate(across(where(is.character), ~ 
                na_if(., "Missing") %>% 
                na_if("not_done")))
d3 %>%
    mutate_if(is.character, ~ na_if(., "Missing") %>%
                              na_if("not_done"))
d3 %>%
    select(where(is.character))