【发布时间】:2015-01-25 07:59:13
【问题描述】:
几天来我一直在努力解决 R 中的这个任务(我是前 SAS 用户)。
设置/研究 - 观察数据。克罗恩病患者。数据在 2002-2013 年间每年收集一次。 - 患者可以在任何一年被包括在内,并且每年的访问可能不定期。 - 我知道每个病人的确切死亡日期。变量:死亡_年 - 我知道复发的确切日期(感兴趣的终点)。变量:RELAPSE_YEAR
我对复发的发生率感兴趣,我需要计算每年的复发次数除以当年存活的人数。现在的问题是,从包容中,个人不规律地来,但我知道他们在那一年是否真的还活着,以及他们是否经历了复发。
如果我可以为每位患者创建 12 个新变量,我就可以解决这个问题。每个新变量都应该是日历年,如果患者在那一年还活着并且还没有经历过该事件,那么这个变量应该设置为“1”。
因此,问题是我需要创建一个“年份变量”,在包含时以及之后的每一年都设置为“1”,前提是该人没有死,或者已经经历过该事件。
一个例子: 患者 X 于 2005 年被纳入并于 2009 年去世。对他来说,我需要他以下变量:“2005”、“2006”、“2007”、“2008”和“2009”设置为“1”。 患者 Y 被纳入 2005 年并经历了 2007 年的事件。对他来说,我需要以下变量:“2005”、“2006”、“2007”设置为“1”。 (是的,事件/死亡年份仍需设置为“1”)。
这是我的数据集的外观:
data <- read.table(header = TRUE, text = "
patient visit first_visit relapse_year death_year
1 2003 2003 . 2010
1 2004 2003 . 2010
1 2009 2003 . 2010
2 2002 2002 2006 .
2 2006 2002 2006 .
2 2006 2002 2006 .
2 2008 2002 2006 .
2 2012 2002 2006 .
3 2004 2004 . .
3 2008 2004 . .
3 2008 2004 . .
")
这是 DESIRED 数据集
desired_data <- read.table(header = TRUE, text = "
patient visit first_visit relapse_year death_year YEAR2002 YEAR2003 YEAR2004 YEAR2005 YEAR2006 YEAR2007 YEAR2008 YEAR2009 YEAR2010 YEAR2011 YEAR2012
1 2003 2003 . 2010 . 1 1 1 1 1 1 1 1 . .
1 2004 2003 . 2010 . 1 1 1 1 1 1 1 1 . .
1 2009 2003 . 2010 . 1 1 1 1 1 1 1 1 . .
2 2002 2002 2006 . 1 1 1 1 1 . . . . . .
2 2006 2002 2006 . 1 1 1 1 1 . . . . . .
2 2006 2002 2006 . 1 1 1 1 1 . . . . . .
2 2008 2002 2006 . 1 1 1 1 1 . . . . . .
2 2012 2002 2006 . 1 1 1 1 1 . . . . . .
3 2004 2004 . . . . 1 1 1 1 1 1 1 1 1
3 2008 2004 . . . . 1 1 1 1 1 1 1 1 1
3 2008 2004 . . . . 1 1 1 1 1 1 1 1 1
")
如果您对此提出任何建议,我将不胜感激! 提前致谢!
【问题讨论】:
-
在得到你想要的数据集后,你会做生存分析吗?因为,如果你这样做了,你就不需要那样重组你的数据了。
-
您希望创建这样一个表的原因是什么?也许更简洁的东西可以完成同样的事情?
-
您好,感谢您的回复。我正在做生存分析,但我(认为)需要这种设置,因为我正在计算绝对估计(每 1000 人年的发病率)和相对风险估计(通过 Cox 回归的风险比)。现在,如果我想计算每年的发病率(我正在检查时间趋势),那么我相信我需要那个设置。干杯
-
即,我需要每年有风险的人数和当年的事件数来计算发病率。很抱歉有任何混淆..
-
如果你只需要这些,你就不需要这个数据结构了。