我有一个数据集,如下所示:

 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),]

最佳答案

也许这会有所帮助

data.frame(strata= rep(1:nrow(df1), each=2), outcome=c(t(df1[2:3])))

09-09 17:23