提问人:turtok 提问时间:11/13/2023 最后编辑:turtok 更新时间:11/16/2023 访问量:42
在 R 中转换和合并事件时间数据
Transforming and merging event time data in R
问:
假设我有一个包含一些事件时间数据的 data.frame
> example_data
id start.f stop.f status.f start.r1 stop.r1 status.r1 start.r2 stop.r2 status.r2
1 1 0 10.0 1 0.00 2.00 1 0.00 1.00 1
2 1 0 10.0 1 2.00 5.00 1 1.00 3.00 1
3 1 0 10.0 1 5.00 8.00 1 3.00 6.00 1
4 1 0 10.0 1 8.00 10.00 0 6.00 10.00 0
5 2 0 10.9 1 0.00 2.18 1 0.00 1.09 1
6 2 0 10.9 1 2.18 5.45 1 1.09 3.27 1
7 2 0 10.9 1 5.45 8.72 1 3.27 6.54 1
8 2 0 10.9 1 8.72 10.90 0 6.54 10.90 0
对于特定的分析,我想将上面的数据转换为 data.frame(在下面的示例中仅针对一个 ID 完成):
> transformed_example_data
id start stop status.f status.r1 status.r2 strata
1 1 0 1 0 0 1 1
2 1 1 2 0 1 0 2
3 1 2 3 0 0 1 3
4 1 3 5 0 1 0 4
5 1 5 6 0 0 1 5
6 1 6 8 0 1 0 6
7 1 8 10 1 0 0 7
如您所见,“开始”/“停止”变量被合并和排序。带有相应后缀的“status”变量指示事件是否发生。“strata”是每个人事件的简单枚举。
我尝试使用整洁的pivot_longer,但似乎无法正确理解它的功能,也无法找到一个可以适应的适当示例。
我似乎无法理解如何做到这一点,并恳请帮助。 该解决方案的性能理想,因为我有大量的数据集需要完成此过程。
需要注意的是,永远不可能同时发生两个事件。后缀“f”表示致命事件类型,“r1”和“r2”分别为循环事件类型。
答: 暂无答案
评论