我有一个像这样的数据框:
library(tidyverse)
df <- data.frame(v1 = rnorm(5),
v2 = c('aa', 'bb', 'cc', 'aa', 'ee'))
我想过滤v2
=='aa'的行。使用stringr包中的dplyr和str_detect
可以轻松实现
df %>% filter(str_detect(v2, 'aa'))
但是,我很难将其集成到v2
列名更改的工作流中。
因此列名存储为字符串并被解析以进行过滤,但是它不起作用:
var <- 'v2'
df %>% filter(str_detect(var, 'aa'))
我尝试了eval
和parse
的组合,但这也不起作用
df %>% filter(str_detect(parse(var), 'aa'))
df %>% filter(str_detect(eval(var), 'aa'))
df %>% filter(str_detect(eval(parse(var)), 'aa'))