我非常感谢您对以下问题的帮助。
我希望为不同时间进行测试的不同科目创建一个代表性的时间序列。数据框称为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`
然后我将主题作为一个因素:
Hayling.Impulsivity$Subject<-factor(Hayling.Impulsivity$Subject)
然后我使用reshape包将数据框格式化为长格式:
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轴只标有&#34;跟进&#34;和&#34; Hayling AB错误分数&#34;分别。两个轴上都没有实际的比例/值/类别,也没有绘制任何点。
我哪里出错?
答案 0 :(得分: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")