R日期“;“起源”;必须提供

R日期“;“起源”;必须提供,r,date,R,Date,我的代码: axis.Date(1,sites$date, origin="1970-01-01") 错误: Error in as.Date.numeric(x) : 'origin' must be supplied 当我在上述代码中提供时,为什么它要问我来源?我猜你的意思是: axis.Date(1, as.Date(sites$date, origin = "1970-01-01")) asas.Date()的'x'参数必须是Date类型 顺

我的代码:

axis.Date(1,sites$date, origin="1970-01-01")
错误:

Error in as.Date.numeric(x) : 'origin' must be supplied
当我在上述代码中提供时,为什么它要问我来源?

我猜你的意思是:

axis.Date(1, as.Date(sites$date, origin = "1970-01-01"))
as
as.Date()
的'x'参数必须是
Date
类型

顺便说一句,这可以作为您之前问题的后续或编辑。

My R use 1970-01-01:

>as.Date(15103, origin="1970-01-01")
[1] "2011-05-09"
这与

>as.numeric(as.Date(15103, origin="1970-01-01"))

如果数值中同时包含日期和时间信息,则使用
as.POSIXct
。Data.table包IDateTime格式就是这种情况。如果使用
fwrite
保存文件,软件包会自动将日期时间转换为idatetime格式,即unix时间。要转换回正常格式,可以执行以下操作

示例:假设您有一个带有日期和时间信息的unix时间戳:1442866615

> as.POSIXct(1442866615,origin="1970-01-01")
[1] "2015-09-21 16:16:54 EDT"

另一个选项是润滑油套装:

library(lubridate)

x <- 15103
as_date(x, origin = lubridate::origin)
"2011-05-09"

y <- 1442866615
as_datetime(y, origin = lubridate::origin)
"2015-09-21 20:16:55 UTC"
库(lubridate)

x因此,通常情况下,这一问题已经解决,但您可能会收到此错误消息,因为您使用的日期格式不正确

我知道这是一篇老文章,但每当我写这篇文章的时候,我的日期栏上都会出现NA。我的日期格式为20150521–NealC 2015年6月5日16:06

如果您有此格式的日期,请使用以下选项检查日期格式:

str(sides$date)
如果格式不是字符,则将其转换为:

as.character(sides$date)
对于as.Date,您不再需要原点,因为它仅用于数值。因此,您可以使用(假设您具有NealC格式):

我希望这可能会对你们中的一些人有所帮助。

顺便说一句,如果加载了zoo包,它会用自己的包覆盖base as.Date(),默认情况下,它提供origin=“1970-01-01”


(我提到这一点是为了防止你发现有时你需要添加来源,有时你不需要。)

我也是,为什么每个R使用不同的来源日期?我知道这是一篇老文章。但是,每当我运行此命令时,我的日期栏就会出现
NA
。我的日期的格式是axis.Date()的'x'参数的
20150521
,否?请参见
args(as.Date)
以查看
x
。@DirkEddelbuettel您认为将日期更改为
“1970-01-01”
是否值得快速编辑问答。我想很多人来到这里都是想得到这个来源(而不是OP中的来源)。更改日期不会影响您提供的语法疑难解答,但会确保没有人在无意中将origin设置为~1960时。抢手货只有十年的打字错误!更妙的是,现在使用
anytime::anydate(sites$date)
:-)呜呜^ 2。感谢@stevec在我的修复中发现了一个打字错误。我要找块石头躲起来。
as.Date(as.character(sides$date),format="%Y%m%d")