Я пишу функцию для изменения порядка столбцов в таблице, чтобы они отображались ggplot в значимом порядке, а не в алфавитном порядке. Эта функция является частью пакета, который я пытаюсь написать, где я разрешаю разные имена столбцов для таблицы. Я хотел бы сделать что-то вроде этого:
reorder_samples <- function(tibble, col_name, fact_list)
{
#where col_name is a string which is the title of the column to be factored
#and fact_list is a concatenated list of strings in the order I want for the factors
factored_tibble <- tibble %>%
mutate_at(col_name, as.factor) %>%
mutate(!!col_name := fct_relevel(col_name, fact_list)
}
Однако, когда я вызываю эту функцию, она выдает мне предупреждающее сообщение: «1: Неизвестные уровни в« f »:», а затем он дает два предметы в моем списке фактов. Это единственные две строки символов в столбце. Кроме того, он возвращает мне тиббл, в котором содержимое столбца было заменено строкой col_name.
Мне потребовалось много времени, чтобы выяснить, как заставить mutate использовать аргументы, предоставленные в моя функция и я не смогли выяснить, какой синтаксис должен быть для forcats, поэтому он понимает, что я имею в виду имя столбца. Если я заменяю имя столбца непосредственно в коде, оно работает:
reorder_samples <- function(tibble, col_name, fact_list)
{
factored_tibble <- tibble %>%
mutate_at(col_name, as.factor) %>%
mutate(!!col_name := fct_relevel(Temp, fact_list)
}
Я также попытался использовать базовый r-фактор функции безуспешно, так как не смог получить фактор для аргумента.
Надеюсь, это понятно, и спасибо за любые советы заранее.