R POSIXct 起源奇怪的行为
R POSIXct origin weird behavior
我对 as.POSIXct()
有疑问。我需要处理大量数据,并且为了尽量减少用于我想要更改的日期的内存 origin
。所以,我使用:
as.integer(as.POSIXct("2015-05-15 00:00:01",origin=("2015-05-15 00:00:00")))
当我认为我应该得到 1 时得到 1431637201。问题是如何处理 origin?
origin
参数不适合此用途。
尝试
as.integer(as.POSIXct("2015-05-15 00:00:01") - as.POSIXct("2015-05-15 00:00:00"))
#[1] 1
或
as.integer(difftime("2015-05-15 00:00:01", "2015-05-15 00:00:00"))
origin
参数用于将数字转换为日期/日期时间对象。该数字表示自 "epoch" 以来经过的时间单位(以秒为单位)。 R 中 POSIX* class 的标准纪元是“1970-01-01”。其他系统使用其他默认来源。当使用表示来自其他系统(如 SAS 或 Excel)的 date/time 对象的数字时,"origin" 需要从 "usual" 更改为“1970-01-01 " 并根据提供数字的来源的定义进行调整,以便在 R.
中重现正确的 date/time
如果第一个参数是日期而不是数字,"origin" 选项将被忽略。
OP 中显示的示例中获得的数字取决于时区,在这种情况下可以这样重现:
as.POSIXct(1431637201, origin="1970-01-01", tz="CEST-3")
#[1] "2015-05-15 00:00:01 CEST"
有关 origin
.
的更多信息和示例,请参阅 ?as.POSIXct
和 ?base::as.Date
我对 as.POSIXct()
有疑问。我需要处理大量数据,并且为了尽量减少用于我想要更改的日期的内存 origin
。所以,我使用:
as.integer(as.POSIXct("2015-05-15 00:00:01",origin=("2015-05-15 00:00:00")))
当我认为我应该得到 1 时得到 1431637201。问题是如何处理 origin?
origin
参数不适合此用途。
尝试
as.integer(as.POSIXct("2015-05-15 00:00:01") - as.POSIXct("2015-05-15 00:00:00"))
#[1] 1
或
as.integer(difftime("2015-05-15 00:00:01", "2015-05-15 00:00:00"))
origin
参数用于将数字转换为日期/日期时间对象。该数字表示自 "epoch" 以来经过的时间单位(以秒为单位)。 R 中 POSIX* class 的标准纪元是“1970-01-01”。其他系统使用其他默认来源。当使用表示来自其他系统(如 SAS 或 Excel)的 date/time 对象的数字时,"origin" 需要从 "usual" 更改为“1970-01-01 " 并根据提供数字的来源的定义进行调整,以便在 R.
如果第一个参数是日期而不是数字,"origin" 选项将被忽略。
OP 中显示的示例中获得的数字取决于时区,在这种情况下可以这样重现:
as.POSIXct(1431637201, origin="1970-01-01", tz="CEST-3")
#[1] "2015-05-15 00:00:01 CEST"
有关 origin
.
?as.POSIXct
和 ?base::as.Date