2015-04-18 2 views
2

Я был бы чрезвычайно благодарен вам за помощь в следующем выпуске.временные ряды 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» соответственно. На обеих осях нет фактических масштабов/значений/категорий, и ни одна точка не была построена.

Где я пошла не так?

+0

Может быть просто проблемой с переменным именованием - попробуйте 'Long.HI <-melt (MYDATA, id.vars = "Тема", variable.name = "прослеживание", значение .name = "HaylingABErrorScore") 'вместо ваших имен переменных пробела. После этого необходимо скорректировать коды заказа и графика. – CMichael

+0

Я думаю, что использовать строки внутри 'aes()' вам нужно использовать 'aes_string()'. Или вы можете поставить «тики» вокруг строк вместо двойных кавычек: 'aes (\' Follow up \ ', ...', но я не пробовал этот метод – tospig

ответ

1

Похоже, что пробелы в названиях столбцов вызывают проблему, даже если вы используете aes_string. Вы можете заменить пробелы символами подчеркивания, а затем четко обозначить оси x и y. Код может выглядеть следующим образом:

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) 
ggplot(Long.H.I., aes(Follow_Up, Hayling_AB_Error_Score, group=Subject, colour=Subject))+ 
    geom_line() + 
    labs(x="Follow Up", y="Hayling AB Error Score") 
+0

Большое вам спасибо. моя проблема и теперь прекрасно выглядит. –

Смежные вопросы