在 mutate 中使用 across 和 str_

Use of across with str_ within a mutate

我想对小标题的所有列应用字符替换。我可以为一栏做到这一点:

starwars %>% mutate(name = str_replace_all(name, "-", ""))

但我不明白如何概括为 across():

starwars %>% mutate(
  across(everything(),
    str_replace_all("-", "")
    )
  )

这里有必要使用purr包吗?

你几乎成功了。使用点表示法将 everything() 命令中指定的所有列动态传递给您的字符串函数。

library(tidyverse)
starwars %>%
  mutate(across(everything(),
         ~str_replace_all(., "-", "")))

另一个选择是使用匿名函数,我个人认为它比点符号更直观和灵活:

starwars %>% mutate(
  across(everything(),
    function(x) str_replace_all(x,"-", "")
    )
  )