【发布时间】:2017-12-28 20:02:11
【问题描述】:
看起来这应该很容易,但我很难过。我已经掌握了使用dplyr 0.7 进行编程的粗略窍门,但为此苦苦挣扎:如果我要编程的变量是字符串,我该如何在dplyr 中编程?
我正在抓取一个数据库,出于各种原因想总结一个我知道位置但不知道名称的变量(我想要的总是提供的表的第一列,但名称存储在该列中的变量将根据被抓取的数据库而有所不同)。以iris为例,假设我知道我想要的变量在第一列
library(tidyverse)
desired_var <- colnames(iris)[1]
print(desired_var)
"Sepal.Length"
我现在想按Species 分组,取desired_var 的平均值,即我想要执行的操作
iris %>%
group_by(Species) %>%
summarise(desired_mean = mean(Sepal.Length))
但是,现在我想取由存储在desired_var 中的字符串定义的列的平均值
我知道如何用“裸”Sepal.Length 做到这一点
desired_var <- quo(Sepal.Length)
iris %>%
group_by(Species) %>%
summarise(desired_mean = mean(!!desired_var))
但是我到底该如何处理我拥有 "Sepal.Length" 而不是 Sepal.Length 的事实,即 desired_var <- "Sepal.Length" 呢?
【问题讨论】: