具有可变列名的函数

问题描述 投票:0回答:1

我有一个函数,我可以反复使用它来汇总有关个人的信息(在我的数据集中具有唯一的ID。由于该数据的排列方式,有时ID列有一个名称,而有时它有另一个名称。每个数据集有不同的函数,我尝试在函数中有一个IDtype字段,以便可以在每个ID字段所在的数据集中指定列。但是,我在下面的函数中始终遇到以下错误:

fun <- function(df, IDtype) {
  df %>%
    group_by(species, IDtype, site) %>%
    summarize(tsMean = mean(ts)) %>%
    arrange(IDtype, tsMean)
}

dfSum <- (fun(data, IDtype = id) #also tried with id in quotes ("id"), but I get the same error 

Error: Column `IDtype` is unknown 

如何修复此功能?

r function dplyr
1个回答
0
投票
我们可以使用curly-curly运算符({{}})评估未报价的值

fun <- function(df, IDtype) { df %>% group_by(species, {{IDtype}}, site) %>% summarize(tsMean = mean(ts)) %>% arrange({{IDtype}}, tsMean) } fun(data, IDtype = id)

© www.soinside.com 2019 - 2024. All rights reserved.