Я пытаюсь использовать dplyr для фильтрации на основе динамической переменной.
Я понял, что для работы фильтра мне нужно заключить имя переменной в круглые скобки. Однако, если я запрограммирую это на функцию, она не будет работать должным образом.
df_ex <- data.frame(a = 1:10, b = 11:20)
param <- quo(a)
# returns df_ex with column a, only, as expected
df_ex %>%
dplyr::select(!!param)
# returns expected df
df_ex %>%
dplyr::filter((!!param)==5)
# Now for the function
testfun <- function(test_df, filt_var){
filt_var_mod <- quo(filt_var)
test_df %>%
dplyr::filter((!!filt_var_mod)==5)
}
# returns empty df, not as expected
testfun(df_ex, "a")
Я хотел бы научиться находить для себя ответы на эти типы вопросов о dplyr, поэтому, пожалуйста, направьте меня к соответствующей части виньетка по программированию