每个人重复的测量图

时间:2018-10-03 15:16:42

标签: r data-visualization

我对如何使用R中的纵向数据绘制特定于主题的图有疑问。

我的数据具有以下格式:

    Id    x0    x1    x2
    1     2     5     6
    2     2     3     2
    3     6     4     3

Id是患者ID,x是在时间点0、1和2上测量的变量。 我有一个向量z,它代表时间:

    z <- c(0, 3, 6)

因此,在时间点0上测量x0,在时间点3上测量x1,在时间点6上测量x2。

我想创建三个不同的抓图,所以每个人一个。我想要时间,所以x轴上的z向量。 y轴应包含x的值。 如何在R中执行此操作?

我希望我的问题很清楚,因为很难清楚地解释它。

先谢谢您。

丽莎

1 个答案:

答案 0 :(得分:0)

源数据:

patient_data <- read.table(header = TRUE, text = "
    Id    x0    x1    x2
    1     2     5     6
    2     2     3     2
    3     6     4     3")

在这里,我将您指定的时间值绑定到第一个表中的列名:

time_names = names(patient_data) 
z <- data.frame(stringsAsFactors = FALSE,
  time_val = c(0, 3, 6),
  time_lab = time_names[2:length(time_names)]
)

现在将两者与图形连接起来:

library(dplyr); library(ggplot2)
patient_data %>%
  tidyr::gather(time_lab, value, -Id) %>%
  left_join(z) %>%
  ggplot(aes(time_val, value)) +
  geom_line() +
  facet_wrap(~Id)

enter image description here