我正在尝试使用语法更改数据框中列子集的类型dplyr
,其中列子集由包含我要操作的列名称的字符向量标识。由于我同时处理多个列,因此我使用across()
. 由于我传递的是外部名称向量,因此我使用all_of()
. 但是,在实际执行此操作时,我收到以下错误。
错误:
mutate()
输入有问题..2
。x 输入..2
必须是向量,而不是原始函数。我的输入..2
是as.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)
正如评论中指出的,这是一个过早使用括号的简单问题。
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)