as.POSIXct给出了无法解释的NA值

时间:2017-10-18 10:02:15

标签: r datetime

我有一个大型数据集(21683条记录),我设法使用asPOSIXct以正确的方式将日期和时间与日期时间结合起来。然而,这对6条记录不起作用(17463:17468)。这是我正在使用的数据集:

> head(solar.angle)
        Date     Time sol.elev.angle ID            Datetime
1 2016-11-24 15:00:00       41.32397  1 2016-11-24 15:00:00
2 2016-11-24 15:10:00       39.11225  2 2016-11-24 15:10:00
3 2016-11-24 15:20:00       36.88180  3 2016-11-24 15:20:00
4 2016-11-24 15:30:00       34.63507  4 2016-11-24 15:30:00
5 2016-11-24 15:40:00       32.37418  5 2016-11-24 15:40:00
6 2016-11-24 15:50:00       30.10096  6 2016-11-24 15:50:00

> solar.angle[17460:17470,]
            Date     Time sol.elev.angle    ID            Datetime
17488 2017-03-26 01:30:00      -72.01821 17460 2017-03-26 01:30:00
17489 2017-03-26 01:40:00      -69.53832 17461 2017-03-26 01:40:00
17490 2017-03-26 01:50:00      -67.05409 17462 2017-03-26 01:50:00
17491 2017-03-26 02:00:00      -64.56682 17463                <NA>
17492 2017-03-26 02:10:00      -62.07730 17464                <NA>
17493 2017-03-26 02:20:00      -59.58609 17465                <NA>
17494 2017-03-26 02:30:00      -57.09359 17466                <NA>
17495 2017-03-26 02:40:00      -54.60006 17467                <NA>
17496 2017-03-26 02:50:00      -52.10572 17468                <NA>
17497 2017-03-26 03:00:00      -49.61071 17469 2017-03-26 03:00:00
17498 2017-03-26 03:10:00      -47.11515 17470 2017-03-26 03:10:00

这是我正在使用的代码:

solar.angle$Datetime <- as.POSIXct(paste(solar.angle$Date,solar.angle$Time), format="%Y-%m-%d %H:%M:%S")

我已经尝试手动填写它们,但这没有任何区别:

> solar.angle$Datetime[17463] <- as.POSIXct('2017-03-26 02:00:00', format = "%Y-%m-%d %H:%M:%S")
> solar.angle$Datetime[17463]
[1] NA

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这里的问题是,这是你切换到夏令时的时间,所以你需要指定时区,否则会有歧义。 如果您指定时区,它将起作用:

as.POSIXct('2017-03-26 02:00:00', format = "%Y-%m-%d %H:%M:%S", tz = "GMT")

返回:     “2017-03-26 02:00:00 GMT”

您可以查看?timezones了解详情。