从时间段作为列绘制数据帧中的时间序列数据

时间:2017-01-12 04:55:27

标签: r

我有来自患者编号索引的临床试验的数据。和数据框架中的治疗组。变量X1至X7对应于在第1个月到第7个月进行的观察。通常,改进对应于测量参数的减少。

   Patient.No Group X1 X2 X3 X4 X5 X6 X7
1      PX-002            1 2  24  4  82  2  2  2
2      PX-009            5  77  6  36  33  1  2  0
3      PX-019            1  6  7  5  4  3  2  2
....
8      PX-001            54  7  7  5  5  3  2  1
9      PX-004            2  67  3  2  3  2  1  1
10     PX-013            3  5  24  4  2  1  1  2
11     PX-015            2  9  4  33  63  2  1  1

对于将第1组称为单独时间序列的一种好方法,一个跟踪7个月内每个患者的进展情况。在x轴上有几个月?

这是我的意思的丑陋原型:

enter image description here

我可以手动完成,但看起来很笨重。有更好的方法吗?

plot(unlist(data[data$Patient.No=="PX-002",c("X1","X2","X3","X4","X5","X6","X7")]),type="b")
lines(unlist(data[data$Patient.No=="PX-019",c("X1","X2","X3","X4","X5","X6","X7")]),type="b")

或者

grp1_data<-data[data$Treat..Group==1,]

plot.ts(y = unlist(grp1_data[grp1_data$Patient.No=="PX-002",c("X1","X2","X3","X4","X5","X6","X7")]),x = c(1,2,3,4,5,6,7)) 

1 个答案:

答案 0 :(得分:1)

这在ggplot中非常简单。顺便说一下,你应该发布一个可重复的例子。如果你有一个,我会为你编码。希望这有效。

library(dplyr) 
library(tidyr)
library(ggplot2)

df %>% 
  gather(Month, Value, -Patient.No, -Group) %>% 
  ggplot(aes(Month, Value, color = Group)) +
  geom_line(alpha = 0.75) + 
  ylab("Chosen Metric") +
  ggtitle("Patient Progress by Group")