У меня есть набор данных, как показано ниже:Как сопоставить данные пациента для условной логистической регрессии в R?
patient_id pre.int.outcome post.int.outcome
302949 1 1
993564 0 1
993570 1 1
993575 0 1
993792 1 0
Я хочу, чтобы выполнить clogit вмешательство до/после каждого пациента
Я понимаю, что мне нужно, чтобы получить его в виде:
strata outcome
1 1
1 1
2 0
2 0
3 0
3 1
В этой форме страты представляют собой пары номеров пациентов и результат, но я не уверен, как это сделать. Может ли кто-нибудь помочь или обратиться к источнику, который поможет?
Редакция:Редактирование: то, что я в конечном итоге закончил, состояло в том, чтобы использовать функцию reshape, чтобы сделать набор данных «длинным», а не широким;
ds1<-reshape(ds, varying=c('pre.int.outcome','post.int.outcome'), v.names='outcome', timevar='before_after', times=c(0,1), direction='long')
Я отсортировал по patient_id, чтобы использовать это как мои «страты».
ds1[order(ds1$patient_id),]
Может использоваться «расплав» из библиотеки (reshape2), то есть 'melt (df1, id.var = 'patient_id') [- 2]' – akrun