从向量中的字符串中提取 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 而不是第二个?
我们可以转换为 sym
bol 并计算 (!!
)
library(dplyr)
iris %>%
count(!! rlang::sym(my_vec[5]))
# Species n
#1 setosa 50
#2 versicolor 50
#3 virginica 50
如果多于一个元素,用syms
,用!!!
求值
我想在向量中使用一些字符串作为一些 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 而不是第二个?
我们可以转换为 sym
bol 并计算 (!!
)
library(dplyr)
iris %>%
count(!! rlang::sym(my_vec[5]))
# Species n
#1 setosa 50
#2 versicolor 50
#3 virginica 50
如果多于一个元素,用syms
,用!!!