gpt4 book ai didi

R计算事件日前后的天数

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

我有一个 data.frame,我想创建一个新列,其中包含某个事件前后的天数。

这是我的数据框:

df <- tibble(
date= lubridate::today()+c(1:7),
event=c(NA,NA,NA,1,NA,NA,NA)
)

df
# A tibble: 7 x 2
date event
<date> <dbl>
1 2020-01-21 NA
2 2020-01-22 NA
3 2020-01-23 NA
4 2020-01-24 1
5 2020-01-25 NA
6 2020-01-26 NA
7 2020-01-27 NA

这是我想要的输出:

# A tibble: 7 x 3
date event days_around
<date> <dbl> <dbl>
1 2020-01-21 NA -3
2 2020-01-22 NA -2
3 2020-01-23 NA -1
4 2020-01-24 1 0
5 2020-01-25 NA 1
6 2020-01-26 NA 2
7 2020-01-27 NA 3

有谁知道我该如何解决我的问题?

可能与 seq_alongrleid 函数结合使用。

最佳答案

我们可以使用:

df$days_around <- seq_along(df$date) - which(df$event == 1)
#Or use which.max
#df$days_around <- seq_along(df$date) - which.max(df$event)

# date event days_around
# <date> <dbl> <int>
#1 2020-01-21 NA -3
#2 2020-01-22 NA -2
#3 2020-01-23 NA -1
#4 2020-01-24 1 0
#5 2020-01-25 NA 1
#6 2020-01-26 NA 2
#7 2020-01-27 NA 3

dplyr 中会是:

library(dplyr)
df %>% mutate(days_around = row_number() - which(event == 1))

关于R计算事件日前后的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59825739/

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