【发布时间】:2018-08-07 16:58:25
【问题描述】:
我有以下示例数据框。数据为长格式(纵向数据)。 col1 表示人员 ID(对于此示例,我们只有 2 个人)。 col2 表示生活事件的发生(例如 0 = 未婚,1 = 已婚)。状态从 0 到 1 的变化实际上标志着生命事件。对于事件之后的每个测量场合,col3 为 1,对于事件之前的每个测量场合,col3 为 0。年份表示评估年份。月份表示评估月份(02 = 二月)。
col1 col2 col3 year month
row.name11 A 0 0 2013 02
row.name12 A 0 0 2014 02
row.name13 A 1 1 2015 02
row.name14 A 0 1 2016 02
row.name15 A 0 1 2018 02
row.name16 B 0 0 2014 02
row.name17 B 0 0 2015 02
row.name18 B 1 1 2016 02
row.name19 B 0 1 2017 04
我现在希望创建一个以事件为中心的时间线。事件发生时新变量应为 0 (col2 == 1)。事件前为负数(表示事件发生前的月份),事件后为正数(表示事件发生后的月份)。
它应该看起来像这样(参见 event.time 变量):
col1 col2 col3 year month event.time
row.name11 A 0 0 2013 02 -24
row.name12 A 0 0 2014 02 -12
row.name13 A 1 1 2015 02 0
row.name14 A 0 1 2016 02 12
row.name15 A 0 1 2018 02 36
row.name16 B 0 0 2014 02 -24
row.name17 B 0 0 2015 02 -12
row.name18 B 1 1 2016 02 0
row.name19 B 0 1 2017 04 14
我发现我应该首先将我的年份和月份变量转换为日期变量(使用 as.date 函数)。然而,我没有成功。之后如何有效地计算 event.time 变量?也许使用 col3 因为这个变量表明它是在事件之前还是之后?
很高兴收到您的任何建议!在此先感谢:)
【问题讨论】:
标签: r