Я был бы чрезвычайно благодарен вам за помощь в следующем выпуске.временные ряды ggplot2 с упорядоченным коэффициентом по оси x
Я хочу создать репрезентативную временную серию для разных предметов, которые прошли тест с дискретными интервалами. Кадр данных называется Hayling.Impulsivity. Ниже приведен пример данных в широком формате:
Subject Baseline 2-weeks 6-weeks 3-months
1 1 15 23 5 NA
2 2 15 27 3 4
3 3 5 7 0 19
4 4 1 5 2 6
5 5 3 7 18 27
6 6 0 2 19 2`
Я тогда сделал Subject фактор:
Hayling.Impulsivity$Subject<-factor(Hayling.Impulsivity$Subject)
Затем я растопленное кадр данных в длинном формате с использованием пакета переформовать:
Long.H.I.<-melt(Hayling.Impulsivity, id.vars="Subject", variable.name="Follow Up", value.name="Hayling AB Error Score")
затем я заказал переменные измерения:
Long.H.I.$"Follow Up"<-factor(Long.H.I.$"Follow Up", levels=c("Baseline", "2-weeks", "6-weeks", "3-months"), ordered=TRUE)
Вот структура этого кадра данных:
'data.frame': 52 obs. of 3 variables:
$ Subject : Factor w/ 13 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
$ Follow Up : Ord.factor w/ 4 levels "Baseline"<"2-weeks"<..: 1 1 1 1 1 1 1 1 1 1 ...
$ Hayling AB Error Score: num 15 15 5 1 3 0 3 0 0 33 ...
Теперь я пытаюсь построить временные ряды в ggplot:
ggplot(Long.H.I., aes("Follow Up", "Hayling AB Error Score", group=Subject, colour=Subject))+geom_line()
Но все это я получаю пустой участок. Мне не разрешено размещать изображение, чтобы показать вам, но оси x и y обозначаются только «Follow Up» и «Hayling AB Error Score» соответственно. На обеих осях нет фактических масштабов/значений/категорий, и ни одна точка не была построена.
Где я пошла не так?
Может быть просто проблемой с переменным именованием - попробуйте 'Long.HI <-melt (MYDATA, id.vars = "Тема", variable.name = "прослеживание", значение .name = "HaylingABErrorScore") 'вместо ваших имен переменных пробела. После этого необходимо скорректировать коды заказа и графика. – CMichael
Я думаю, что использовать строки внутри 'aes()' вам нужно использовать 'aes_string()'. Или вы можете поставить «тики» вокруг строк вместо двойных кавычек: 'aes (\' Follow up \ ', ...', но я не пробовал этот метод – tospig