Как изменить имя столбца в r с целого числа для графика

#r #ggplot2 #graph #rename

Вопрос:

Я пытаюсь построить гистограмму в R дни недели-это ось x, и я хочу, чтобы они были метками для каждого бара, но в наборе данных они отмечены от 1 до 7, начиная с воскресенья, поэтому я сделал следующее:

 week_day2$day_of_week lt;- recode(week_day2$day_of_week,   "1"="Sunday",  "2"="Monday",  "3"="Tuesday",  "4"="Wednesday",  "5"="Thursday",  "6"="Friday",  "7"="Saturday")  

Но потом я не смог привести план бара в порядок, поэтому я использовал библиотеку forcats

 library(tidyverse) library(forcats)  Graph_major_days lt;- week_day2 %gt;%  mutate(name = fct_relevel(day_of_week,   "Sunday", "Monday", "Tuesday",   "Wednesday", "Thursday", "Friday",   "Saturday")) %gt;%  ggplot( aes(x=name, y=n))    geom_bar(stat="identity")  

Я хочу знать, есть ли более простой/читаемый способ сделать такие вещи

Ответ №1:

Если я вас правильно понял, вам следует сохранить числа в наборе данных и вместо этого просто изменить метки графика на дни недели. Вот полный пример:

 library(ggplot2) set.seed(0)  df lt;- data.frame(day_of_week = sample(1:7, 7), n = rnorm(7)) days = c("Sun", "Mon", "Tue", "Thu", "Wed", "Fri", "Sat")  ggplot(df, aes(x = day_of_week, y = n))     geom_bar(stat="identity")    scale_x_continuous(breaks = 1:7, labels = days)  

Как вы можете видеть, даже если дни не упорядочены в наборе данных, они отображаются упорядоченными на графике. При необходимости вы также можете добавить дни недели в набор данных, просто не удаляйте числовые значения.

введите описание изображения здесь