将每小时数据汇总为R中缺少值的每日汇总 [英] Aggregating hourly data into daily aggregates with missing value in R

查看:117
本文介绍了将每小时数据汇总为R中缺少值的每日汇总的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

[在此处输入图像描述] [1] [在此处输入图像描述] [2]我有一个数据框 RH,其中包含每小时数据,我想将其转换为每日最大和最小数据。这段代码非常有用[question]:将每小时数据汇总为每日汇总

[enter image description here][1][enter image description here][2]I have a data frame "RH", with hourly data and I want to convert it to daily maximum and minimum data. This code was very useful [question]:Aggregating hourly data into daily aggregates

RH$Date <- strptime(RH$Date,format="%y/%m/%d)
RH$day <- trunc(RH$Date,"day")

require(plyr)

x <- ddply(RH,.(Date),
  summarize,
  aveRH=mean(RH),
  maxRH=max(RH),
  minRH=min(RH)
)

但是我的前5年数据不是每小时3小时数据,所以这些年没有结果。有什么建议吗?谢谢您。

But my first 5 years data are 3 hours data not hourly. so no results for those years. Any suggestion? Thank you in advance.

'data.frame':201600个观测值,包含3个变量:
$日期:chr 1985/01/01 1985 / 01/01/01 1985/01/01 1985/01/01 ...
$小时:int 1 2 3 4 5 6 7 8 9 10 ...
$ RH: int不适用不适用93不适用不适用不适用不适用不适用...

推荐答案

您提供的链接是一个古老的代码。代码仍然非常好,可以正常工作,但是这里的使用 dplyr lubridate

The link you provided is an old one. The code is still perfectly good and would work, but here's a more modern version using dplyr and lubridate

df <- read.table(text='date_time value
"01/01/2000 01:00" 30
"01/01/2000 02:00" 31
"01/01/2000 03:00" 33
"12/31/2000 23:00" 25',header=TRUE,stringsAsFactors=FALSE)

library(dplyr);library(lubridate)
df %>%
  mutate(date_time=as.POSIXct(date_time,format="%m/%d/%Y %H:%M")) %>%
  group_by(date(date_time)) %>%
  summarise(mean=mean(value,na.rm=TRUE),max=max(value,na.rm=TRUE),
            min=min(value,na.rm=TRUE))

  `date(date_time)`     mean   max   min
             <date>    <dbl> <dbl> <dbl>
1        2000-01-01 31.33333    33    30
2        2000-12-31 25.00000    25    25

编辑
由于已经有一个日期列,因此应该可以使用:

EDIT Since there's already a date column, this should work:

RH %>% 
 group_by(Date) %>% 
 summarise(mean=mean(RH,na.rm=TRUE),max=max(RH,na.rm=TRUE), 
           min=min(RH,na.rm=TRUE))

这篇关于将每小时数据汇总为R中缺少值的每日汇总的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆