我正在尝试用 重塑以下数据集reshape()
,但没有太多结果。
起始数据集采用“宽”形式,每个 id 通过一行描述。该数据集旨在用于进行多态分析(生存分析的概括)。
在给定的总时间跨度内记录每个人。在此期间,受试者可能会经历许多状态之间的转换(为简单起见,让我们将可以访问的最大不同状态数固定为两个)。第一个访问状态是s1 = 1, 2, 3, 4
。该人在该州停留dur1
一段时间,同样适用于第二次访问的州s2
:
id cohort s1 dur1 s2 dur2
1 1 3 4 2 5
2 0 1 4 4 3
我想获得的长格式数据集是:
id cohort s
1 1 3
1 1 3
1 1 3
1 1 3
1 1 2
1 1 2
1 1 2
1 1 2
1 1 2
2 0 1
2 0 1
2 0 1
2 0 1
2 0 4
2 0 4
2 0 4
在实践中,每个 id 都有dur1 + dur2
行,并且s1
融合s2
在一个变量s
中。
你将如何进行这种转变?另外,您将如何返回原始数据集“宽”形式?
非常感谢!
dat <- cbind(id=c(1,2), cohort=c(1, 0), s1=c(3, 1), dur1=c(4, 4), s2=c(2, 4), dur2=c(5, 3))