<分区>
我想在 R 中将波斯历日期(例如 1399/03/27)转换为公历日期。R 中有这样做的函数吗?
<分区>
我想在 R 中将波斯历日期(例如 1399/03/27)转换为公历日期。R 中有这样做的函数吗?
最佳答案
正如 @RuiBarradas 在评论中指出的,我们可以使用 ConvCalendar::OtherDate
。由于该软件包不再位于 CRAN 上,我们首先需要从源代码安装它:
# p.url <- "https://cran.r-project.org/src/contrib/Archive/ConvCalendar/ConvCalendar_1.2.tar.gz"
# install.packages(p.url,
# repos=NULL, type="source")
OtherDate
需要向量中的日、月和年,并按此顺序。它创建类 "OtherDate"
的类列表对象,可以将其输入 as.Date
以返回公历日期。
library(ConvCalendar)
persian <- OtherDate(day=27, month=03, year=1399, calendar="persian")
gregorian <- as.Date(persian)
gregorian
# [1] "2020-06-16"
我们可以更自动地使用 do.call
。
persian <- "1399/03/27"
persian <- do.call(OtherDate, c(as.list(rev(el(strsplit(persian, "/")))),
calendar="persian"))
gregorian <- as.Date(persian)
gregorian
# [1] "2020-06-16"
关于r - 如何在 R 中将波斯日期转换为公历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62455880/