【发布时间】:2021-04-28 00:29:19
【问题描述】:
我想通过几个字段来计算一个data.frame的行之间的天数,所以如果我有以下data.frame:
da <- read.table(text="i j data date
2 682 147 2008-05-26
2 682 317 2010-11-13
2 682 217 2019-08-05
3 682 147 2008-05-26
3 682 317 2010-11-13
10 682 220 2019-08-08", header=TRUE)
require(dplyr)
da %>% count(i,j)
我想计算第一组的两个周期,第二组一个周期,最后一个周期没有。
我可以计算第一个日期和最后一个日期之间的间隔
require(lubridate)
da %>% group_by(i,j) %>%
summarize(fini=ymd(min(date)),fend=ymd(max(date)),deltaD=as.numeric(fend - fini))
`summarise()` regrouping output by 'i' (override with `.groups` argument)
# A tibble: 3 x 5
# Groups: i [3]
i j fini fend deltaD
<int> <int> <date> <date> <dbl>
1 2 682 2008-05-26 2019-08-05 4088
2 3 682 2008-05-26 2010-11-13 901
3 10 682 2019-08-08 2019-08-08 0
如果我在组中有两行,那很好,但如果我有 3 行或更多,我不知道该怎么做。
【问题讨论】: