在R中每3小时对一组数据进行排序

时间:2019-07-08 13:13:25

标签: r sorting dataset

在34年中,我每10分钟就有2个数据集。在其中之一中,观察仅每3小时进行一次,我只想与观察保持一致。它从午夜开始(包括)开始,例如:3 am、6am、9am等。

看起来像这样:

stn CODES               time1 pcp_type
1 SIO     - 1981-01-01 02:00:00     <NA>
2 SIO     - 1981-01-01 02:10:00     <NA>
3 SIO     - 1981-01-01 02:20:00     <NA>
4 SIO     - 1981-01-01 02:30:00     <NA>
5 SIO     - 1981-01-01 02:40:00     <NA>
6 SIO     - 1981-01-01 02:50:00     <NA> 

现在的想法是只保留每3小时对应的行,并删除其余的行。

我看到了一些有关按值排序(例如大于)的解决方案,但没有找到可以帮助我按小时排序的解决方案(%H == 3等)。

谢谢。

我已经对时间列进行了如下排序:

SYNOP_SION$time1<-as.POSIXct(strptime(as.character(SYNOP_SION$time),format = "%Y%m%d%H%M"), tz="UTC")

1 个答案:

答案 0 :(得分:0)

以下是带有向量的示例:

# Creating sample time data
time1 <- seq(from = Sys.time(), length.out = 96, by = "hours")

# To get a T/F vector you can use to filter
as.integer(format(time1, "%H")) %in% seq.int(0, 21, 3)

# To see the filtered POSIXct vector:
time1[as.integer(format(time1, "%H")) %in% seq.int(0, 21, 3)]