我有一个数据集,其中包含1990年至2017年的每日观察结果。列开始和结束(下方)显示某个政治示范的开始和结束。如何在事件正在进行的每一天创建一个值为1的虚拟变量,如虚拟列中所示。
date cc country start end dummy
9/6/1991 20 Canada 0 0
9/7/1991 20 Canada 0 0
9/8/1991 20 Canada 0 0
9/9/1991 20 Canada 0 0
9/10/1991 20 Canada 1 0 1
9/11/1991 20 Canada 0 0 1
9/12/1991 20 Canada 0 0 1
9/13/1991 20 Canada 0 0 1
9/14/1991 20 Canada 0 0 1
9/15/1991 20 Canada 0 0 1
9/16/1991 20 Canada 0 0 1
9/17/1991 20 Canada 0 1 1
9/18/1991 20 Canada 0 0
9/19/1991 20 Canada 0 0
9/20/1991 20 Canada 0 0
9/21/1991 20 Canada 0 0
9/22/1991 20 Canada 0 0
9/23/1991 20 Canada 0 0
9/24/1991 20 Canada 0 0
9/25/1991 20 Canada 0 0
9/26/1991 20 Canada 0 0
9/27/1991 20 Canada 0 0
9/28/1991 20 Canada 1 0 1
9/29/1991 20 Canada 0 0 1
9/30/1991 20 Canada 0 0 1
10/1/1991 20 Canada 0 0 1
10/2/1991 20 Canada 0 1 1
10/3/1991 20 Canada 0 0
10/4/1991 20 Canada 0 0
10/5/1991 20 Canada 0 0
10/6/1991 20 Canada 0 0
10/7/1991 20 Canada 0 0
非常感谢任何帮助。谢谢!
答案 0 :(得分:3)
试试这个(我假设你的数据框叫df
:
df$dummy <- cumsum(df$start - df$end) + df$end
编辑:要容纳一个事件在另一个事件结束的同时开始的行,您可以使用以下内容,稍微难以阅读版本:
df$dummy <- as.numeric((cumsum(df$start - df$end) + df$end) > 0)