我正在尝试使用 dplyr 将数据框中的多个列“居中”,但我不断收到“二进制运算符的非数字参数”评估错误。我认为这是因为当我的函数需要一个裸变量名时,我试图传递一个字符串。但是,使用 syms() 函数并没有帮助。
center <- function(var) {
var <- enquo(var)
var_ctrd <- paste0(quo_name(var), "_ctrd")
dataset <- dataset %>%
group_by(Gender) %>%
mutate(!! var_ctrd := !! var - mean(!! var, na.rm = TRUE))
}
# Pull out character vector of modifier names
mod_names <- dataset %>%
select(NeckLengthCm:FlexExtDiff_Peak_abs) %>%
colnames()
# Iterate over modifiers
walk(syms(mod_names), center)
有谁知道如何解决这个问题或者是否有更好的解决方案?