【发布时间】:2019-09-19 01:33:18
【问题描述】:
我有一个每小时时间序列的日期时间,格式为“%Y-%m-%d %H:%M:%S”和“字符”类。目标是使用 as.POSIXct 将字符数据转换为日期和时间。但是,尽管每个日期的记录数 (24) 是正确的,但时间序列中的某些记录缺少时间部分(“%H:%M:%S”)。
是否可以用从 00:00:00 开始到每个日期的 23:00:00 结束的小时序列来填写这些记录的时间部分?
原始数据集:
Date_time
...
1991-03-31 21:00:00
1991-03-31 22:00:00
1991-03-31 23:00:00
1991-04-01
1991-04-01
1991-04-01
...
我想要什么:
Date_time
...
1991-03-31 21:00:00
1991-03-31 22:00:00
1991-03-31 23:00:00
1991-04-01 00:00:00
1991-04-01 01:00:00
1991-04-01 02:00:00
...
我得到的最接近的解决方法是仍然采用字符格式,但结果从 16:00:00 开始。请发送暂停。
hours=c("00:00:00", "01:00:00", "02:00:00", "03:00:00", "04:00:00", "05:00:00", "06:00:00", "07:00:00", "08:00:00", "09:00:00", "10:00:00", "11:00:00", "12:00:00","13:00:00", "14:00:00", "15:00:00", "16:00:00", "17:00:00", "18:00:00", "19:00:00", "20:00:00","21:00:00", "22:00:00", "23:00:00")
Dataset %>%
mutate(Date_time_filled = ifelse(nchar(as.character(Date_time))<19,
paste(Date_time, hours),
paste(Date_time)))
我得到了什么(错误):
Date_time
...
1991-03-31 21:00:00
1991-03-31 22:00:00
1991-03-31 23:00:00
1991-04-01 16:00:00
1991-04-01 17:00:00
1991-04-01 18:00:00
...
编辑:
X metadata.id metadata.name metadata.lat metadata.lon Date_time data.v data.s data.f
1 1 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 01:00:00 NA NA 1,1
2 2 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 02:00:00 NA NA 1,1
3 3 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 03:00:00 NA NA 1,1
4 4 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 04:00:00 NA NA 1,1
5 5 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 05:00:00 NA NA 1,1
6 6 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 06:00:00 NA NA 1,1
7 7 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 07:00:00 NA NA 1,1
8 8 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 08:00:00 NA NA 1,1
9 9 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 09:00:00 NA NA 1,1
10 10 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 10:00:00 NA NA 1,1
11 11 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 11:00:00 NA NA 1,1
12 12 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 12:00:00 NA NA 1,1
13 13 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 13:00:00 NA NA 1,1
14 14 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 14:00:00 NA NA 1,1
15 15 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 15:00:00 NA NA 1,1
16 16 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 16:00:00 NA NA 1,1
17 17 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 17:00:00 NA NA 1,1
18 18 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 18:00:00 NA NA 1,1
19 19 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 19:00:00 NA NA 1,1
20 20 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 20:00:00 NA NA 1,1
21 21 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 21:00:00 NA NA 1,1
22 22 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 22:00:00 NA NA 1,1
23 23 9411340 Santa Barbara 34.4031 -119.6928 1990-10-22 23:00:00 NA NA 1,1
24 24 9411340 Santa Barbara 34.4031 -119.6928 1990-10-23 00:00:00 NA NA 1,1
25 25 9411340 Santa Barbara 34.4031 -119.6928 1990-10-23 01:00:00 NA NA 1,1
【问题讨论】: