0

我有一组患者数据。我试图弄清楚在整个研究过程中更换药物的患者是否在事件发生之前更换了药物。现在我使用下面的代码创建了一个新的 data.frame:

switches_MACE <- matrix(0, nrow=dim(WorkingDifMed3)[1], ncol=4)
colnames(switches_MACE) <- c("record_id", "WhenSwitch","MACE_date","Before_or_After")

我已经轻松地转移了 record_id 和 MACE_date,因为我可以轻松地从先前的 data.frame (WorkingDifMed3) 转移整个列。

我遇到的问题是“何时切换”列的创建。我正在尝试在 for 循环中使用嵌套的 if 语句。我的“WorkingDifMed3”data.frame 列设置为首先记录_id(733 名患者,每个新行),出院时给予的药物,然后是“x”个不使用的列,日期发生药物切换/未切换(该列与放电列进行比较),然后是药物(0、1、2、3)。药物转换非转换列和日期列重复到研究结束。

我的代码如下:

A= 1:733


for (i in seq(along=A))
  {
  for (j in seq(from=start, to=dim(WorkingDifMed3)[2], by=2))
    {
    if(WorkingDifMed3[i,"p2y12i_fu_discharge"] != (WorkingDifMed3[i,j]))
    {switches_MACE[i,2] <- WorkingDifMed3[i,j+1]}
  }
}

问题是代码返回 0、1、TRUE 和 FALSE。我不知道为什么我需要它来返回出院药物(在可能改变的日期之后列出)不等于出院列中的药物的日期(在药物之前列出)。

意识到对于患者 1,药物可能在时间 8 更改,而患者 2 可能在时间 1 更改药物,因此并非所有日期都相同。

谢谢!

4

0 回答 0