【发布时间】:2020-06-28 17:59:10
【问题描述】:
作为函数的一部分,我正在尝试创建一个数据框,并且我想在变量之后命名其中的一列。下面是一些虚拟数据,是我坚持的部分。
library(tidyverse)
graph <- data.frame(brand = rep(c("A","B","C"), each = 3),
week_commencing = rep(as.Date(c('2020-03-01', '2020-04-01', '2020-05-01')), times = 3),
sessions = sample(1000:2000,9),
conv_rate = runif(9,0,1))
website = "A"
metric = "sessions"
graph %>%
filter(brand == (!!website)) %>%
group_by(brand) %>%
summarise(metric = max(get(metric)),
week_commencing = min(week_commencing),
lab = "This Year")
在汇总函数调用中,我希望将列名度量称为会话,我尝试使用 get(metric) 和 (!!metric) 作为列命名的一部分,但它不起作用。
这甚至可以在 R 中实现吗?任何帮助将不胜感激。
【问题讨论】:
-
即使在函数内部,我认为过滤器也不需要 tidyeval。你可以这样做:
filter(brand == website) -
这个问题的答案显示了如何在可以使用变量stackoverflow.com/q/6081439/59470的基础 R 中更改数据框中的列名