我有一系列日期时间值。
library(lubridate)
timestamp <- seq.POSIXt(from=as.POSIXct("2019-01-01 00:00:00"),
to=as.POSIXct("2019-01-02 23:00:00"), by= '6 hours')
> timestamp
[1] "2019-01-01 00:00:00 EET" "2019-01-01 06:00:00 EET" "2019-01-01 12:00:00 EET"
[4] "2019-01-01 18:00:00 EET" "2019-01-02 00:00:00 EET" "2019-01-02 06:00:00 EET"
[7] "2019-01-02 12:00:00 EET" "2019-01-02 18:00:00 EET"
我想在日期分量与输入日期匹配的向量中找到第一个datetime元素的索引。例如,如果日期为“ 2019-01-02” ,则元素为“ 2019-01-02 00:00:00 EET” ,其索引为 5 。
在原始数据集中,日期时间之间的间隔不是恒定的,因此一天的第一个元素很容易是“ 2019-01-02 00:00:03 EET”或“ 2019-01-02 00:00:10 EET” ”,找到它们的索引很重要。
到目前为止,所有这些行都给我NA:
firstDatetime = match(date("2019-01-02 12:00:00"),timestamp)
firstDatetime = match(date("2019-01-02"),timestamp)
firstDatetime = match(as_date("2019-01-02"),timestamp)
答案 0 :(得分:0)
两个对象的类不同
class(as.Date("2019-01-02"))
#[1] "Date"
和
class(timestamp)
#[1] "POSIXct" "POSIXt"
在所有尝试中,您尝试将match
类的对象与Date
类的对象
将POSIXct
转换为“日期”,然后将timestamp
转换为第一个匹配索引。
match