我想创建一个函数,该函数将数据集的名称作为第一个参数,将数据帧中列名称的一部分作为第二个参数。然后,我想glue
在函数中动态构造列名称,并在调用中使用该列mutate
,如下所示:
library(tidyverse)
tmp <-
function(data, type){
var <- glue::glue("Sepal.{type}")
iris |>
select({{var}}) |>
mutate("{var}" := mean({{var}}))
}
我已经尝试了很多方法,但我很难找到一种解决方案,其中该列既可以用于新列的名称(此处为"{var}"
),也可以用于新列的计算(此处为mean({{var}})
)。遇到这种情况应该怎么办?
在这里,调用tmp(iris, "Length")
应该返回一个150x1
data.frame,其中包含所有行的平均值。
tidyverse
首选解决方案,或任何基于管道的答案。