我的代码:
axis.Date(1,sites$date, origin="1960-10-01")
Run Code Online (Sandbox Code Playgroud)
错误:
Error in as.Date.numeric(x) : 'origin' must be supplied
Run Code Online (Sandbox Code Playgroud)
当我在上面的代码中提供它时,为什么要问我原点?
Dir*_*tel 38
我怀疑你的意思是:
axis.Date(1, as.Date(sites$date, origin = "1960-10-01"))
Run Code Online (Sandbox Code Playgroud)
作为'x'参数as.Date()必须是类型Date.
顺便说一句,这可以作为您之前问题的后续或编辑.
ken*_*yut 19
我的R使用1970-01-01:
>as.Date(15103, origin="1970-01-01")
[1] "2011-05-09"
Run Code Online (Sandbox Code Playgroud)
这符合计算
>as.numeric(as.Date(15103, origin="1970-01-01"))
Run Code Online (Sandbox Code Playgroud)
小智 10
所以通常这已经解决了,但您可能会收到此错误消息,因为您使用的日期格式不正确。
我知道这是一个旧帖子,但是每当我运行它时,我的日期列一直都是 NA。我的日期采用这种格式 20150521 – NealC 2015 年 6 月 5 日 16:06
如果您有这种格式的日期,只需检查您的日期格式:
str(sides$date)
Run Code Online (Sandbox Code Playgroud)
如果格式不是字符,则对其进行转换:
as.character(sides$date)
Run Code Online (Sandbox Code Playgroud)
对于 as.Date,您将不再需要原点,因为它仅为数值提供。因此你可以使用(假设你有 NealC 的格式):
as.Date(as.character(sides$date),format="%Y%m%d")
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助你们中的一些人。
如果您在数值中同时包含日期和时间信息,请使用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"
Run Code Online (Sandbox Code Playgroud)
另一个选择是lubridate包:
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"
Run Code Online (Sandbox Code Playgroud)
来自文档:
Origin是POSIXct格式的1970-01-01 UTC的日期时间.此日期时间是POSIXct,POSIXlt,chron和Date类使用的编号系统的原点.
| 归档时间: |
|
| 查看次数: |
136363 次 |
| 最近记录: |