相关疑难解决方法(0)

R - 计算自多个事件类型的上一个事件以来经过的时间

我有一个数据框,其中包含多种类型事件的日期.

df <- data.frame(date=as.Date(c("06/07/2000","15/09/2000","15/10/2000"
                            ,"03/01/2001","17/03/2001","23/04/2001",
                            "26/05/2001","01/06/2001",
                            "30/06/2001","02/07/2001","15/07/2001"
                            ,"21/12/2001"), "%d/%m/%Y"), 
             event_type=c(0,4,1,2,4,1,0,2,3,3,4,3))

   date                event_type
   ----------------    ----------
1  2000-07-06          0
2  2000-09-15          4
3  2000-10-15          1
4  2001-01-03          2
5  2001-03-17          4
6  2001-04-23          1
7  2001-05-26          0
8  2001-06-01          2
9  2001-06-30          3
10 2001-07-02          3
11 2001-07-15          4
12 2001-12-21          3
Run Code Online (Sandbox Code Playgroud)

我试图计算每个事件类型之间的天数,所以输出如下所示:

   date                event_type          days_since_last_event
   ----------------    ----------          ---------------------
1  2000-07-06          0                    NA
2  2000-09-15          4                    NA
3  2000-10-15          1                    NA
4  2001-01-03          2                    NA
5  2001-03-17          4                   183
6  2001-04-23          1 …
Run Code Online (Sandbox Code Playgroud)

time r

5
推荐指数
2
解决办法
1036
查看次数

计算自上次事件以来经过的时间

我有一个包含多个主题(id)的数据框,重复观察(有时记录time).每个时间可以或可以不与事件(event)相关联.可以使用以下命令生成示例数据框:

set.seed(12345)
id <- c(rep(1, 9), rep(2, 9), rep(3, 9))
time <- c(seq(from = 0, to = 96, by = 12),
      seq(from = 0, to = 80, by = 10),
      seq(from = 0, to = 112, by = 14))
random <- runif(n = 27)
event <- rep(100, 27)

df <- data.frame(cbind(id, time, event, random))
df$event <- ifelse(df$random < 0.55, 0, df$event)
df <- subset(df, select = -c(random))
df$event <- ifelse(df$time == 0, 100, df$event) …
Run Code Online (Sandbox Code Playgroud)

time if-statement r dplyr

4
推荐指数
1
解决办法
2118
查看次数

标签 统计

r ×2

time ×2

dplyr ×1

if-statement ×1