我想获得一年中12个月-每个月30天的日期序列(因此没有公历(,我想知道seq.Date
或seq.IDate
(data.table(中是否有一些变通方法。非常感谢。
- 我们可以试试这个
as.Date(paste0( "2022/",rep(1:12 , each = 30) ,"/", rep(1:30 , times = 12)))
您可以使用ISOdate()
从数字表示中创建日期时间。
as.Date(ISOdate(2022, rep(1:12, each = 30), 1:30))
您可能正在使用一些符合CF元数据约定的数据集(例如大多数气候预测数据和许多其他环境数据集(。在支持的9个日历中,360_day
将年表示为30天的12个月。这显然不符合POSIXt,因此您不能可靠地使用内置的日期函数,也不能使用像lubridate
这样的包。然而,现在有一个包CFtime
,它透明地支持所有9个CF日历。
您可以创建2022年的时间序列,如下所示:
ts <- CFtime("days since 2022-01-01", "360_day", 0:359)
或2020-12-20至2021-1-10期间:
ts <- CFtime("days since 2020-12-20", "360_day", 0:20)
作为字符串:
CFtimestamp(ts)
该包还可以创建具有日历意识的因素,以便进一步处理。