【发布时间】:2016-09-10 02:03:27
【问题描述】:
我有一个以 30 分钟频率不规则采样的数据集,如下所示。我需要每天提取最后一个时间戳的索引。数据集如下:
datetime <-c("8/19/2011 16:00",
"8/19/2011 17:30",
"8/19/2011 18:30",
"8/19/2011 19:30",
"8/22/2011 4:00",
"8/22/2011 6:00",
"8/22/2011 7:00",
"8/22/2011 19:00",
"8/22/2011 19:30",
"8/23/2011 4:00",
"8/24/2011 5:30",
"8/24/2011 7:00",
"10/25/2011 7:30")
我已将其转换为 POSIXlt 对象,如下所示。
datetime <- strptime(datetime, format="%m/%d/%Y %H:%M")
datetime <- as.POSIXlt(datetime)
但是,我无法提取每天的最后一个索引。我想要一个输出作为每天最后一个时间戳的索引,即我的输出将是
list of (4, 9, 10,12,13) corresponding to datetime values of
"8/19/2011 19:30"
"8/22/2011 19:30"
"8/23/2011 4:00"
"8/24/2011 7:00"
"10/25/2011 7:30"
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
请修正代码中的错字。
datetime <as.POSIXlt(datetime)应该使用赋值运算符而不是小于运算符。此外,您想要的输出在 2011 年 8 月 23 日有两个最大值。 -
library(tidyverse) ; data_frame(datetime = mdy_hm(datetime)) %>% rownames_to_column('index') %>% group_by(date = date(datetime)) %>% filter(datetime == max(datetime))