如何在 R 中绘制纵向数据

如何在 R 中绘制纵向数据

我正在尝试在 R 中绘制纵向数据。我的数据框具有以下形式:

参与者 ID 组 S1 S2 S3 S4 S5 S6 S7 S8
1 ctrl 14.00 14.00 13.00 13.00 7.00 8.00 4.00 1.00
2 药物 2.00 13.00 13.00 16.00 14.00 6.00 6.00 6.00
3 ctrl 27.00 28.00 29.00 35.00 30.00 17.00 17.00 18.00
4 药物 17.00 14.00 8.00 15.00 14.00 5.00 16.00 13.00
5 药物 8.00 2.00 29.00 27.00 8.00 6.00 7.00 7.00

....

我有 8 个时间点(“S”)。我想要一张图表,其中两条线代表组,另一条线代表跨时间点(从 S1 到 S8)的测量值演变。我尝试使用 plot.ts (My_data[,3:10]),但使用此命令我得到了与单个时间点相对应的单独图表。有人有其他建议吗?

亿达

答案1

最好的方法是使用lattice允许您检查每个受试者的个体生长曲线的软件包。但是您需要先将数据重新格式化为长格式。

df<-structure(list(participant_ID = 1:5, group = c("ctrl", "drug", 
"ctrl", "drug", "drug"), S1 = c(14L, 2L, 27L, 17L, 8L), S2 = c(14L, 
13L, 28L, 14L, 2L), S3 = c(13L, 13L, 29L, 8L, 29L), S4 = c(13L, 
16L, 35L, 15L, 27L), S5 = c(7L, 14L, 30L, 14L, 8L), S6 = c(8L, 
6L, 17L, 5L, 6L), S7 = c(4L, 6L, 17L, 16L, 7L), S8 = c(1L, 6L, 
18L, 13L, 7L)), class = "data.frame", row.names = c(NA, -5L))

library(reshape2)
df2<-melt(data=df,id.vars = c("participant_ID","group"))

library(lattice)
xyplot(data=df2, value~variable |participant_ID)

如果您愿意,您可以将其汇总起来,得到一条代表所有案例的线。首先检查单个增长曲线非常重要。 请参阅此文档了解详情。

相关内容