使用dplyr根据列名向量更改列类型导致错误

5
我正在尝试使用dplyr语法更改数据帧中一部分列的类型,其中这些列由包含我想要操作的列名的字符向量来识别。由于我同时处理多列,所以我使用across()。由于我传递了一个外部名称向量,因此我使用all_of()。但是,当我实际执行此操作时,我会得到以下错误。

Error: mutate()输入..2存在问题。 x 输入..2必须是向量,而不是原始函数。 i 输入..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)

5
你把括号 ) 关闭得太早了。应该是 df %>% mutate(across(all_of(cols_to_convert), as.character)) - akrun
1
啊,是的。我一直觉得这很反直觉,因为我期望的是类似于mutate(.data,.cols,function)这样的东西。谢谢你。 - socialscientist
我一直以为,是括号,]是方括号,}是花括号。重新校准我的假设是很好的事情 :-) - r2evans
1个回答

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))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接