Я хочу пересчитать факторы в наборе данных, однако я действительно борюсь с синтаксисом fct_relevel и использую его с mutate_at.Я получаю серию ошибок о том, что мои данные не являются фактором.
Решение должно позволить мне перераспределить несколько факторов (фактический набор данных имеет 20 с лишним факторов для перерасчета по-разному)
Этот ответ похоже, что он должен работать,но я явно не понимаю синтаксис должным образом.Где я ошибаюсь?
Вот пример:
library(tidyverse)
dat <- tibble (x1 = c("b", "b", "a", "c", "b"),
x2 = c("c", "b", "c", "a", "a"),
y = c(10, 5, 12, 3, 4)) %>%
mutate_at(.vars = vars(x1:x2), factor)
Я определенно имею дело с факторами
sapply(dat, class)
Но я не могу высвободить x1, яполучить следующую ошибку: f must be a factor (or character vector))
dat %>% fct_relevel(x1, "c", "b", "a")
И это то, что я в идеале хотел бы иметь возможность сделать
dat2 <- dat %>%
mutate_at(.vars = vars (x1:x2),
.funs = fct_relevel("c", "b", "a"))
В тот момент, когда окончательный набор дает мне следующие ошибки:
Ошибка: невозможно создать вызов для не вызываемого объекта
Позвонить rlang::last_error()
, чтобы увидеть обратный след
Дополнительно: Предупреждающее сообщение:
Неизвестные уровни в f: b, a
Я был бы очень признателен всем, кто указал, что, я уверен, является очевидной ошибкой.