График повторных измерений на человека - PullRequest
0 голосов
/ 03 октября 2018

У меня есть вопрос о том, как рисовать конкретные для субъекта графики с продольными данными в R.

Мои данные имеют следующий формат:

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

Id - это идентификатор пациента, x - этопеременная, которая измеряется в моменты времени 0, 1 и 2. У меня есть вектор z, который представляет время:

    z <- c(0, 3, 6)

Итак, x0 измеряется в момент времени 0, x1 измеряется в момент времени 3, а x2 - этоизмерено в момент времени 6.

Я хочу создать три разных захвата, поэтому по одному для каждого человека.Я хочу время, поэтому вектор z на оси X.Ось Y должна содержать значения х.Как я могу сделать это в R?

Надеюсь, мой вопрос ясен, так как его трудно объяснить четко.

Заранее спасибо.

Лиза

1 Ответ

0 голосов
/ 03 октября 2018

Исходные данные:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...