对于项目,我使用POSIXct
函数将字符串转换为strptime
格式。
x <- strptime("2016-03-13 02:56:16", "%Y-%m-%d %H:%M:%S")
class(x)
[1] "POSIXlt" "POSIXt"
x + 3600
[1] NA
虽然class(x)
会产生"POSIXlt" "POSIXt"
,但x + 3600
正在NA
如果我在2017年使用相同的月,日,小时,分钟,秒进行类似的程序,那就有效了!
x <- strptime("2017-03-13 02:56:16", "%Y-%m-%d %H:%M:%S")
class(x)
[1] "POSIXlt" "POSIXt"
x + 3600
[1] "2017-03-13 03:56:16 EDT"
回顾我的数据,我看到日期转换中存在问题的日期列表!
[1] "2016-03-13 02:51:02" "2016-03-13 02:49:46" "2016-03-13 02:24:15" "2016-03-13 02:37:52" "2016-03-13 02:56:16"
[6] "2016-03-13 02:59:32" "2016-03-13 02:49:29" "2016-03-13 02:27:20" "2016-03-13 02:22:20" "2016-03-13 02:44:11"
[11] "2016-03-13 02:43:31" "2016-03-13 02:44:46" "2016-03-13 02:07:48" "2016-03-13 02:36:36" "2016-03-13 02:51:39"
[16] "2016-03-13 02:00:13" "2016-03-13 02:42:37" "2016-03-13 02:48:53" "2016-03-13 02:53:05" "2016-03-13 02:01:41"
[21] "2016-03-13 02:57:36" "2016-03-13 02:40:09" "2016-03-13 02:27:19" "2016-03-13 02:33:08" "2016-03-13 02:18:51"
[26] "2016-03-13 02:05:45" "2016-03-13 02:06:09" "2016-03-13 02:06:09" "2016-03-13 02:03:25" "2016-03-13 02:32:14"
[31] "2016-03-13 02:59:34" "2016-03-13 02:35:39" "2016-03-13 02:51:10" "2016-03-13 02:50:56" "2016-03-13 02:38:56"
[36] "2016-03-13 02:25:35" "2016-03-13 02:20:09" "2016-03-13 02:30:43" "2016-03-13 02:00:04" "2016-03-13 02:51:55"
[41] "2016-03-13 02:26:25" "2016-03-13 02:37:20" "2016-03-13 02:49:29" "2016-03-13 02:35:50" "2016-03-13 02:05:38"
[46] "2016-03-13 02:15:10" "2016-03-13 02:54:23"
如果我将年份更改为2015
或2017
,或将日期从13
更改为其他内容,则可以。 2016年3月13日似乎有些事情发生了。我错过了什么或者这是R内的缺陷吗?
我正在使用R version 3.3.2 (2016-10-31)
答案 0 :(得分:4)
问题在于 &#34; 2016-03-13 02:56:16&#34;。 2016年3月13日是夏令时开始的时候。凌晨2点,时钟立即跳到凌晨3点。