2017-01-12 3 views
2

Изменения от базовой линии для повторных идентификаторов с отсутствующими базовыми точкамиизменения от базовой линии для повторных идентификаторов с отсутствующими базовыми точками

Аналогичным вопрос был задан и ответил ниже:

Change from baseline for repeated ids

Мой вопрос отличается от исходный вопрос в том, что у меня отсутствуют базовые значения. Я в том числе небольшой воспроизводимый пример ниже:

df1 <- data.frame(probeID = c(rep("A", 19), rep("B",19), rep("C",19)), 
        Subject_ID = c(rep(c(rep(1,5), rep(2,4), rep(3,5), rep(4,5)),3)), 
        time = c(rep(c(c(1:5), c(2:5), rep(1:5,2)),3))) 
df1$measure <- df1$Subject_ID*c(1:nrow(df1)) 

df2 <- subset(df1, Subject_ID != 2) 

df2 %>% 
    group_by(probeID, Subject_ID) %>% 
    mutate(change = measure - measure[time==1]) 

Однако, когда я заменяю df2 с df1 в трубе выше, она не потому, что отсутствуют данные для момента времени = 1 данных для subject_id = 2. Мой желаемый результат в случае df1 должен быть идентичным выводу из df2. Буду признателен за любую помощь.

Благодаря

JJ

ответ

0

возникли некоторые проблемы при попытке выяснить, что ваш вопрос был просить, делает эту работу?

df1 %>% 
    group_by(probeID, Subject_ID) %>% 
    mutate(change = measure - first(measure)) 
+0

Это требует, чтобы столбцы были заказаны, поэтому вам может потребоваться «организовать (probeID, Subject_ID)» заранее – Zafar

Смежные вопросы