R Studio 中用于重估的管道问题

Problem with Piping for revalue in R Studio

我想重估 13 个不同的变量。它们现在都具有作为级别的字符,并且应该更改为值。 单独使用

x$eins <- revalue(x$eins, c("Nie Thema" = "1",
                "Selten Thema" = "2",
                "Manchmal Thema" = "3", 
                "Häufig Thema" = "4",
                "Sehr häufig Thema" = "5",
                "Fast immer Thema" = "6"))

有了管道,我想它看起来像这样

x %>% 
  dplyr::select(., eins:dreizehn) %>% 
  revalue(., c("Nie Thema" = "1",
                "Selten Thema" = "2",
                "Manchmal Thema" = "3", 
                "Häufig Thema" = "4",
                "Sehr häufig Thema" = "5",
                "Fast immer Thema" = "6"))

有了这个,我从 revalue 得到警告消息,x 不是一个因子或字符向量。

我做错了什么? 提前致谢。

使用across为多列应用一个函数。

library(dplyr)

x <- x %>%
      dplyr::mutate(across(eins:dreizehn, ~revalue(., c("Nie Thema" = "1",
                                                 "Selten Thema" = "2",
                                                 "Manchmal Thema" = "3", 
                                                 "Häufig Thema" = "4",
                                                 "Sehr häufig Thema" = "5",
                                                 "Fast immer Thema" = "6"))))