【发布时间】:2018-10-25 17:29:19
【问题描述】:
我从 RNCEP 包中导入了一些数据,其中包含一个日期时间戳(以 UTC 为字符):
> head(df.weather[1])
datetime
1 2018_06_01_00
2 2018_06_01_00
3 2018_06_01_00
4 2018_06_01_00
5 2018_06_01_00
6 2018_06_01_00
用下划线分隔年、月、日和小时。
我想将这些日期更改为 POSIXct,我可以使用以下方法获取日期:
df.weather$date<-as.POSIXct(
str_replace_all(df.weather$datetime, "_", "-"),
format="%Y-%m-%d")
head(df.weather[11])
date
1 2018-06-01
2 2018-06-01
3 2018-06-01
4 2018-06-01
5 2018-06-01
6 2018-06-01
但是,如果我将格式更改为“%Y-%m-%d %H”或“%Y-%m-%d %H:%M”,我会得到以下信息:
date
1 <NA>
2 <NA>
3 <NA>
4 <NA>
5 <NA>
6 <NA>
如何调整我的代码以将小时信息放入 POSIXct 变量中?
【问题讨论】:
-
as.POSIXct(strptime(df.weather$datetime, "%Y_%m_%d_%H"))? -
不幸的是,这仍然只给了我日期,而不是与之相关的小时。
-
实际上它确实给了你时间。但是你被 print.POSIXt 的行为愚弄了,它忽略了打印午夜的时间。很确定以前有人问过并回答过这个问题,但我找了一个但找不到。
-
谢谢。如果您将此作为答案,那么我可以接受。