查找具有匹配日期组件的第一个日期时间元素的索引
Find index of the first datetime element with matching date component
我有一系列日期时间值。
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"
我想在日期分量与输入日期匹配的向量中找到第一个日期时间元素的索引。例如,如果日期为 "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)
类 两个对象不同
class(as.Date("2019-01-02"))
#[1] "Date"
和
class(timestamp)
#[1] "POSIXct" "POSIXt"
在您的所有尝试中,您都在尝试 match
class Date
的对象与 class POSIXct
的对象
将 timestamp
转换为 "date",然后转换为 match
,它应该会为您提供匹配项的第一个索引。
match(as.Date("2019-01-02"), as.Date(timestamp))
我有一系列日期时间值。
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"
我想在日期分量与输入日期匹配的向量中找到第一个日期时间元素的索引。例如,如果日期为 "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)
类 两个对象不同
class(as.Date("2019-01-02"))
#[1] "Date"
和
class(timestamp)
#[1] "POSIXct" "POSIXt"
在您的所有尝试中,您都在尝试 match
class Date
的对象与 class POSIXct
将 timestamp
转换为 "date",然后转换为 match
,它应该会为您提供匹配项的第一个索引。
match(as.Date("2019-01-02"), as.Date(timestamp))