从向量中的字符串中提取 R 中的变量名称

Extract variable name in R from string in a vector

我想在向量中使用一些字符串作为一些 dplyr 动词的变量名,主要是计数。

让我们使用 Iris 并假设我有这个向量:

my_vec <- c("Sepal.Length","Sepal.Width","Petal.Length","Petal.Width","Species")

如果我决定 count(Species) 一切都很好。

> iris %>% count(Species)
# A tibble: 3 x 2
  Species        n
  <fct>      <int>
1 setosa        50
2 versicolor    50
3 virginica     50

问题是,当我想使用保存在向量中的字符串时,程序无法正确评估它。

> iris %>% count(my_vec[5])
# A tibble: 1 x 2
  `my_vec[5]`     n
  <chr>       <int>
1 Species       150

如何使用 my_vec[5] 的值获得第一个 table 而不是第二个?

我们可以转换为 symbol 并计算 (!!)

library(dplyr)
iris %>% 
     count(!! rlang::sym(my_vec[5]))
#     Species  n
#1     setosa 50
#2 versicolor 50
#3  virginica 50

如果多于一个元素,用syms,用!!!

求值