Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并R中的日期向量后,日期会发生变化_R_Date_Vector_Lubridate - Fatal编程技术网

合并R中的日期向量后,日期会发生变化

合并R中的日期向量后,日期会发生变化,r,date,vector,lubridate,R,Date,Vector,Lubridate,我试图将两个日期向量组合成一个向量。我一直在使用lubridate软件包的日期 首先,我创建两个日期向量: library(lubridate) mydate <- mdy("04/01/2016") mydate_range <- mydate + (1:12)*months(1) anotherdate_range <- mdy("05/01/2017") + (1:12)*months(1) 库(lubridate) mydate日期更改的原因是时区调整导致的转换。

我试图将两个日期向量组合成一个向量。我一直在使用lubridate软件包的日期

首先,我创建两个日期向量:

library(lubridate)

mydate <- mdy("04/01/2016")
mydate_range <- mydate + (1:12)*months(1)

anotherdate_range <- mdy("05/01/2017") + (1:12)*months(1)
库(lubridate)

mydate日期更改的原因是时区调整导致的转换。2016-04-30 19:00:00 CDT与2016-05-01 GMT相同。最有可能的是您的初始序列是在GMT中,并且在转换为当地时间的过程中的某个地方。
我发现最好在初始定义中定义时区,并且在整个定义过程中保持一致。

如何通过组合两个
Date
对象而得到
POSIXct/lt
datetime?我不能复制你的例子。我同意@thelatemail,不能复制。对我来说效果很好,我得到了
Date[1:24],格式:“2016-05-01”“2016-06-01”“2016-07-01”“2016-08-01”“2016-09-01”…
虽然这是可能的原因,但据我所知,R的基本
Date
对象没有与之关联的时区。在这个过程中的某个地方,OP已经将事物转换成了日期时间,可能是我猜的一个
POSIXct
对象。我还没有使用lubridate来很好地理解它。但是如果附加了一个时间段,ymd将返回一个POSIX对象。事实上,我看到在合并日期向量后时区发生了变化,即使在原来的两个时间段中指定了时区,并且是相同的。它还收集了一个时间戳。我用的是lubridate,你一定要用,但即使是lubridate也不是完美的。我的快速解决方法是转换为字符、组合向量、转换回具有正确时区且未重新指定时间戳的日期。这个答案似乎是一个显而易见的解决方案,但不幸的是,有日期的事情从来都不明显。
combineddates <- c(mydate_range, anotherdate_range)
combineddates
[1] "2016-04-30 19:00:00 CDT" "2016-05-31 19:00:00 CDT" "2016-06-30 19:00:00 CDT"