R - dplyr.Функции с переменной, похожей на столбцы данных - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть этот случай, когда я фильтрую данные в кадре данных в функции, но в кадре данных есть столбец с именем, аналогичным имени переменной, по которой я хочу фильтровать.

пример:

d = tibble(cond = c(1,2), b = c(1,2))

f_ = function(data, cond) {
  data = data %>% filter(b == cond)
  return(data)
}

f_(d, cond = 2)

# A tibble: 2 x 2
   cond     b
  <dbl> <dbl>
1     1     1
2     2     2

Фильтрация не происходит (потому что здесь cond равно b).

это становится проблемой, когда я не контролирую количество столбцов в данных, но, как минимум, знаю, что в нем есть столбец b.

1 Ответ

1 голос
/ 27 сентября 2019

Мы можем изменить функцию для оценки 'cond' не из среды

f_ = function(data, cond) {
    data %>%
        filter(b == !!cond)

 }

f_(d, cond = 2)
# A tibble: 1 x 2
#   cond     b
#  <dbl> <dbl>
#1     2     2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...