При использовании n () в summarise_at () я получаю эту ошибку:
Error: n() should only be called in a data context
Call `rlang::last_error()` to see a backtrace
Другие считают, что это может быть проблема маскировки dplyr
с plyr
, два решения:
- Заменить
summarise_at()
на `dplyr :: summarise_at () ' - Call
detach("package:plyr", unload=TRUE)
Ни одна не удалила эту ошибку, и мне любопытночтобы понять, что вызывает это.Вот воспроизводимый пример, который должен привести к той же ошибке:
Df <- data.frame(
Condition = c(rep("No", 20), rep("Yes",20)),
Height = c(rep(1,10),rep(2,10),rep(1,10),rep(2,10)),
Weight = c(rep(10,5),rep(20,5),rep(30,5), rep(40,5))
)
x <- c("Height","Weight")
Df %>%
group_by(Condition) %>%
summarise_at(vars(one_of(x)), c(mean = mean, sd = sd, count = n()))
Примечание. Если удалить count = n()
, код запускается без проблем