Переменная экрана по заданным условиям - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь использовать 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 голосов
/ 21 января 2019

ОТВЕТ Если вы действительно хотите, то:

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

Примечания по хорошей практике Вам нужно использовать другое имя переменной. В противном случае это то, что вы делаете: R сначала ищет цил в наборе данных.

mtcars %>% 
  filter(cyl==cyl)

Это ничего не меняет. Однако, как вы заметили, это работает:

    mycyl<-4
   mtcars %>% 
      filter(cyl==mycyl)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...