gpt4 book ai didi

r - 如何为 R 中的特定范围创建虚拟变量?

转载 作者:行者123 更新时间:2023-12-04 11:48:13 27 4
gpt4 key购买 nike

我有一个数据集,其中包含从 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

非常感谢任何帮助。谢谢!

最佳答案

试试这个(我假设你的数据框叫做 df:

df$dummy <- cumsum(df$start - df$end) + df$end

编辑:为了适应一个事件同时开始另一个事件结束的行,您可以使用以下稍微难以阅读的版本:

df$dummy <- as.numeric((cumsum(df$start - df$end) + df$end) > 0)

关于r - 如何为 R 中的特定范围创建虚拟变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49675178/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com