在仔细研究 NSE 小插图一段时间并进行研究后,我发现你可以使用setNames
within summarise_
如果你使用.dots
论证并把interp
在列表中工作。
a %>%
filter_(~x == tag) %>%
group_by_(tag) %>%
summarise_(.dots = setNames(list(interp(~sum(var, na.rm = TRUE),
var = as.name(paste0(metric,"_",run1)))),
paste0(metric,"_",run1)))
Source: local data frame [1 x 2]
2011 y_zm
1 2011 30
您还可以添加一个rename_
步骤做同样的事情。我认为这不太理想,因为它依赖于知道您在其中使用的名称summarise_
。但如果你总是使用相同的名字,比如variable_name
,对于某些情况,这似乎确实是一个可行的选择。
a %>%
filter_(~x == tag) %>%
group_by_(tag) %>%
summarise_(variable_name = interp(~sum(var, na.rm = T),
var = as.name(paste0(metric,"_",run1)))) %>%
rename_(.dots = setNames("variable_name", paste0(metric,"_",run1)))
Source: local data frame [1 x 2]
2011 y_zm
1 2011 30