首页 > 解决方案 > R:过滤每小时数据集以仅使用每天有 4 次或更多观察的数据

问题描述

我正在使用一个数据集,该数据集计算从 1958 年到 2020 年的每小时观察。问题是,在某些日子里,每小时的观察没有其他天那么多。我想过滤我的数据集,并且只使用超过 4 个观察日的数据。

这是我的数据的一个快速示例

time          date        hourlymax
18:00:00      1993:08:21  6
08:00:00      1993:08:23  6
11:00:00      1993:08:23  6
08:00:00      1993:08:26  3.5

是否有如上所述过滤数据?

谢谢

标签: rtime-series

解决方案


我认为这样的事情会返回每天至少有四个观察值的数据。

碱基R

dat4 <- dat[ ave(dat$date, dat$date, FUN = length) >= 4, ]

tidyverse

library(dplyr)
dat4 <- dat %>%
  group_by(date) %>%
  filter(n() >= 4)

数据表

library(data.table)
setDT(dat) # if not already a data.table
dat4 <- dat[, .SD[.N >= 4, ], by = .(date) ]

推荐阅读