根据给定条件筛选变量

时间:2019-01-21 19:16:13

标签: r dplyr

我正在尝试使用dplyr :: filter在特定条件下筛选变量。使用以下方法获取过滤结果没问题:

    mtcars %>% filter(cyl == 4)

    var <- 4
    mtcars %>% filter(cyl == var)

但是,如果我使用相同的名称作为变量,则在过滤器函数之外定义给定条件时,将无法生成相同的结果。例如:

    cyl <- 4
    mtcars %>% filter(cyl %in% cyl) # not work
    mtcars %>% filter(cyl == cyl) # not work

1 个答案:

答案 0 :(得分:2)

答案 如果您真的想要:

cyl<-4
mtcars %>% 
  filter(cyl==(!!cyl))

良好做法说明 您需要使用其他变量名。否则,这就是您正在做的事情:R首先在数据集中寻找cyl。

mtcars %>% 
  filter(cyl==cyl)

这没有改变。 但是,正如您所指出的;这可行:

    mycyl<-4
   mtcars %>% 
      filter(cyl==mycyl)