【发布时间】:2018-12-23 19:17:56
【问题描述】:
我对 R 比较陌生,并且在使用 dplyr 内部函数时遇到了问题。我浏览了论坛,查看了所有类似的问题,但我无法解决我的问题。我试图用下面的例子来简化我的问题
df <- tibble(
g1 = c(1, 2, 3, 4, 5),
a = sample(5),
b = sample(5)
)
我想写一个函数来计算a和b之和如下:
sum <- function(df, group_var, a, b) {
group_var <- enquo(group_var)
a <- enquo(a)
b <- enquo(b)
df.temp<- df %>%
group_by(g1) %>%
mutate(
sum = !!a + !!b
)
return(df.temp)
}
我可以通过这一行调用函数:
df2 <- sum(df, g1, a, b)
我的问题是我不想在函数调用中对列名进行硬编码,因为列名“g1”、“a”和“b”可能会改变。因此,我将列名从配置文件 (config.yml) 分配给了一个变量。
但是当我使用变量时,我遇到了多个问题。有人可以在这里指导我吗?对于所有列名引用,理想情况下我希望使用变量。例如我在这段代码中遇到了问题:
A.Key <- "a"
B.Key <- "b"
df2 <- sum(df, g1, A.Key, B.Key)
在此先感谢,如果之前已经回答过,我们深表歉意;没找到。
【问题讨论】: