Вариантов этого вопроса задавали много, читал про NSE. До сих пор я не могу этого понять.
Это легко:
library(dplyr)
data(cars)
cars %>%
group_by(speed) %>%
summarise(d = mean(dist))
Теперь я хочу использовать переменную x, чтобы передать столбец dist для обозначения
x <- "dist"
Конечно, это не работает:
cars %>%
group_by(speed) %>%
summarise(d = mean(x))
Поэтому я использую SE-версию суммирования:
cars %>%
group_by(speed) %>%
summarise_(d = mean(x))
Хорошо, не работает, поэтому мне также нужно добавить ~
:
cars %>%
group_by(speed) %>%
summarise_(d = ~mean(x))
По-прежнему не работает, но если использовать dist
вместо x
:
cars %>%
group_by(speed) %>%
summarise_(d = ~mean(dist))
Это работает, но не использует x.
cars %>%
group_by(speed) %>%
summarise_(d = ~mean(~x))
Это тоже не работает.
Я в основном шатаюсь, не зная, как заставить эту работу работать или почему она терпит неудачу.