如何制作BC R 中的日期格式

问题描述 投票:0回答:3

我有像

1/1/-2150
这样的绳子。如何从 R
 中制作 
Date

格式

lubridate
返回:

library(lubridate)
dmy("1/1/-2150")
[1] "2150-01-01"

as.Date("1/1/-2150",format="%d/%m/%Y")
[1] NA

现在

1/1/-2150
有阶级品格了。
我需要相同的值,但有类
Date

谢谢

更新
类似的东西,但如果可能的话使用

lubridate

minus=as.numeric(dmy("1/1/-2150"))
x<-as.numeric(ymd("0000-1-1"))
dt=as.Date(x*2-minus,origin="1970-01-01")+days(1) 
str(dt)
Date[1:1], format: "-2150-01-01"
r date lubridate
3个回答
1
投票

不幸的是,没有任何真正大型的 R 包来解决这个问题(也许没有人问过)。然而,gregorian 包应该能够满足您的 BCE 需求。

gregorian::as_gregorian("-2150-1-1") [1]“公元前 2151 年 1 月 1 日星期二”


0
投票

我们需要在

-
 中指定 
format

as.Date("1/1/-2150",format="%d/%m/-%Y")
#[1] "2150-01-01"

0
投票

聚会迟到了,但这里有一个可能的解决方案。找出 2150-01-01 距离 0000-01-01 有多远,然后将其设为负数并将其传递给原点为 '0000-01-01' 的

as.Date()

y <- as.numeric(as.Date("2150-01-01"))+ as.numeric(as.Date("1970-01-01") - as.Date("0000-01-01"))
y
#785272

x <- as.Date(-y, "0000-01-01")
x
#"-2151-12-31"
© www.soinside.com 2019 - 2024. All rights reserved.