【发布时间】:2020-05-16 07:15:20
【问题描述】:
我想弄清楚当日期范围跨越一个日历年时如何添加一行。下面是一个最小的代表:
我有一个这样的日期框架:
have <- data.frame(
from = c(as.Date('2018-12-15'), as.Date('2019-12-20'), as.Date('2019-05-13')),
to = c(as.Date('2019-06-20'), as.Date('2020-01-25'), as.Date('2019-09-10'))
)
have
#> from to
#> 1 2018-12-15 2019-06-20
#> 2 2019-12-20 2020-01-25
#> 3 2019-05-13 2019-09-10
当to 和from 跨越一个日历年时,我想要一个分成两行的data.frame。
want <- data.frame(
from = c(as.Date('2018-12-15'), as.Date('2019-01-01'), as.Date('2019-12-20'), as.Date('2020-01-01'), as.Date('2019-05-13')),
to = c(as.Date('2018-12-31'), as.Date('2019-06-20'), as.Date('2019-12-31'), as.Date('2020-01-25'), as.Date('2019-09-10'))
)
want
#> from to
#> 1 2018-12-15 2018-12-31
#> 2 2019-01-01 2019-06-20
#> 3 2019-12-20 2019-12-31
#> 4 2020-01-01 2020-01-25
#> 5 2019-05-13 2019-09-10
我想这样做是因为对于特定的行,我想知道每年有多少天。
want$time_diff_by_year <- difftime(want$to, want$from)
由reprex package (v0.3.0) 于 2020-05-15 创建
非常感谢任何基本的 R、tidyverse 解决方案。
【问题讨论】:
-
是真的
-
我又添加了两行。这行得通吗?
-
一行可能会跨越 两年 年,例如
2018-05-13到2020-03-10?如果是这样,您是否想要显而易见的东西,即是否分成三行?
标签: r