【发布时间】:2023-03-03 20:42:01
【问题描述】:
我有一个不平衡的面板数据,其中包含一个指示事件是否发生的二进制变量。我想控制时间依赖性。做到这一点的方法是控制自事件发生以来已经过去的时间。
这是一个可重现的示例,带有我想要实现的向量。谢谢!
id year onset time_since_event
1 1 1989 0 0
2 1 1990 0 1
3 1 1991 1 2
4 1 1992 0 0
5 1 1993 0 1
6 1 1994 0 2
7 2 1989 0 0
8 2 1990 1 1
9 2 1991 0 0
10 2 1992 1 1
11 2 1993 0 2
12 2 1994 0 3
13 3 1991 0 0
14 3 1992 0 1
15 3 1993 0 2
°
id <- c(1,1,1,1,1,2,2,2,2,3,3)
year <- c(1989,1990,1991,1992,1993,1994,1989,1990,1991,1992,1993,1994,1991,1992,1993)
onset <- c(0,0,1,0,0,0,0,1,0,1,0,0,0,0)
time_since_event<-c(0,1,2,0,1,2,0,1,2,3,0,1,2) #what I want to create
df <- data.frame(cbind(id, year, onset,time_since_event))
【问题讨论】:
-
“time_since_event”是否只与“onset”相关联?或者您是否打算将其也与“id”或“year”相关联?
-
自从ID切换后,它与id和年份相关联,我不希望time_since_event不断累积,需要将其设置回0
-
您的示例中没有演示,是吗?您能否更新一下该要求和所需的输出?
-
已修复!对此感到抱歉
-
你永远不需要做
data.frame(cbind(...));试试data.frame(...)。当您有混合数据类型(如字符串 ID 或日期列)时,这也将保护您免受奇怪的行为。
标签: r