R:根据列名称向量使用 dplyr 更改列类型会产生错误

use*_*648 5 types r dplyr

我正在尝试使用语法更改数据框中列子集的类型dplyr,其中列子集由包含我要操作的列名称的字符向量标识。由于我同时处理多个列,因此我使用across(). 由于我传递的是外部名称向量,因此我使用all_of(). 但是,在实际执行此操作时,我收到以下错误。

错误:mutate()输入有问题..2。x 输入..2必须是向量,而不是原始函数。我的输入..2as.character.

下面是重现该错误的示例。

library(dplyr)

# Create example data
df <- data.frame(x = rnorm(10),
                 y = rnorm(10))

cols_to_convert <- c("x","y")

df %>% mutate(across(all_of(cols_to_convert)),
              as.character)
Run Code Online (Sandbox Code Playgroud)

use*_*648 5

正如评论中指出的,这是一个过早使用括号的简单问题。

library(dplyr)

# Create example data
df <- data.frame(x = rnorm(10),
                 y = rnorm(10))

cols_to_convert <- c("x","y")

df %>% mutate(across(all_of(cols_to_convert),
              as.character))
Run Code Online (Sandbox Code Playgroud)