R POSIXct起源奇怪的行为

R POSIXct起源奇怪的行为,r,date,posix,R,Date,Posix,我的as.POSIXct()有问题。我需要处理大量数据,为了最大限度地减少用于日期的内存,我想更改原点。因此,我使用: as.integer(as.POSIXct("2015-05-15 00:00:01",origin=("2015-05-15 00:00:00"))) 当我认为我应该得到1的时候,得到1431637201。问题是如何处理原点?此参数不适用于此目的 试一试 或 origin参数用于将数字转换为日期/日期时间对象。该数字表示自“历元”以来经过的时间单位(秒)。R中POSIX*类

我的
as.POSIXct()
有问题。我需要处理大量数据,为了最大限度地减少用于日期的内存,我想更改
原点
。因此,我使用:

as.integer(as.POSIXct("2015-05-15 00:00:01",origin=("2015-05-15 00:00:00")))

当我认为我应该得到1的时候,得到1431637201。问题是如何处理原点?

此参数不适用于此目的

试一试


origin
参数用于将数字转换为日期/日期时间对象。该数字表示自“历元”以来经过的时间单位(秒)。R中POSIX*类的标准历元为“1970-01-01”。其他系统使用其他默认原点。当使用表示源自其他系统(如SAS或Excel)的日期/时间对象的数字时,“来源”需要从“通常的”“1970-01-01”更改,并根据提供数字的来源的定义进行调整,以便在R中重现正确的日期/时间

如果将日期而不是数字作为第一个参数提供,则忽略“原点”选项

在OP中所示的示例中获得的数字取决于时区,并且在这种情况下可以如下再现:

as.POSIXct(1431637201, origin="1970-01-01", tz="CEST-3")
#[1] "2015-05-15 00:00:01 CEST"

请参见
?as.POSIXct
?base::as.Date
,了解有关
origin

使用的更多信息和示例
origin
参数不适用于此目的

试一试


origin
参数用于将数字转换为日期/日期时间对象。该数字表示自“历元”以来经过的时间单位(秒)。R中POSIX*类的标准历元为“1970-01-01”。其他系统使用其他默认原点。当使用表示源自其他系统(如SAS或Excel)的日期/时间对象的数字时,“来源”需要从“通常的”“1970-01-01”更改,并根据提供数字的来源的定义进行调整,以便在R中重现正确的日期/时间

如果将日期而不是数字作为第一个参数提供,则忽略“原点”选项

在OP中所示的示例中获得的数字取决于时区,并且在这种情况下可以如下再现:

as.POSIXct(1431637201, origin="1970-01-01", tz="CEST-3")
#[1] "2015-05-15 00:00:01 CEST"

请参见
?as.POSIXct
?base::as.Date
了解有关使用
源代码的更多信息和示例

不确定如何包含秒数。让我们来看看Paranthessesthank you,@PierrelaFortune有没有办法避免使用像
1431637201
这样的大数字,而仍然使用POSIXct格式?@Andrew因为这些数字代表某个时间点(纪元)后的秒数,所以数字几乎不可避免地会很大。处理较小数字的一种可能性是减去与可以定义为起点的日期/日期时间相对应的偏移量,如
my.start不确定如何包含秒。让我们来看看Paranthessesthank you,@PierrelaFortune有没有办法避免使用像
1431637201
这样的大数字,而仍然使用POSIXct格式?@Andrew因为这些数字代表某个时间点(纪元)后的秒数,所以数字几乎不可避免地会很大。处理较小数字的一种可能性是减去与可以定义为起点的日期/日期时间相对应的偏移量,如
my.start
as.POSIXct(1431637201, origin="1970-01-01", tz="CEST-3")
#[1] "2015-05-15 00:00:01 CEST"