7
我想写一个自定义函数,将基于预定义的变量向量(例如,vector_heavy)的值计算新变量,然后根据参数命名新变量提供给函数(例如,custom_name)。基于一个静态命名一个新的变量
这个变量命名是我的平静技能失败的地方。任何帮助是极大的赞赏。
library(tidyverse)
vector_heavy <- quos(disp, wt, cyl)
cv_compute <- function(data, cv_name, cv_vector){
cv_name <- enquo(cv_name)
data %>%
rowwise() %>%
mutate(!!cv_name = mean(c(!!!cv_vector), na.rm = TRUE)) %>%
ungroup()
}
d <- cv_compute(mtcars, cv_name = custom_name, cv_vector = vector_heavy)
我的错误信息上写着:
Error: unexpected '=' in:
" rowwise() %>%
mutate(!!cv_name ="
cv_name
之前卸下!!
内mutate()
将导致计算出一个新的变量命名字面上一个cv_name
功能,而忽略我已经包括作为该custom_name
论据。
cv_compute <- function(data, cv_name, cv_vector){
cv_name <- enquo(cv_name)
data %>%
rowwise() %>%
mutate(cv_name = mean(c(!!!cv_vector), na.rm = TRUE)) %>%
ungroup()
}
我怎样才能得到这个功能利用我公司供应作为cv_name
一个参数custom_name
?
漂亮的解决方案谢谢! – Joe