如何在R中每30分钟进行汇总 [英] How to aggregate every 30 minutes in R

查看:100
本文介绍了如何在R中每30分钟进行汇总的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我陷入了困境。我需要将每分钟的数据汇总到每30分钟的数据中。我的数据框是这样的:

I am stuck in R. I need to aggregate every minute data into every 30 minutes. My data frame is like this:

    Date        Time       Power
    2008-10-11  23:57:00   0.376
    2008-10-11  23:58:00   0.374
    2008-10-11  23:59:00   0.374
    2008-10-12  0:00:00    0.334
    2008-10-12  0:01:00    0.330
...
    2008-12-13  19:24:00   1.390
    2008-12-13  19:25:00   1.370
    2008-12-13  19:26:00   1.368
    2008-12-13  19:27:00   1.362
    2008-12-13  19:28:00   1.352
    2008-12-13  19:29:00   1.360

...

基本上,我有2008年的500,979行数据。每分钟给出一个功效值。为了进行时间序列,我需要每30分钟汇总一次数据。最终我将得到约17,520行。我的问题是:

Basically, I have 500,979 rows of data for 2008. Every minute gives a power value. In order to do Time Series, I need to aggregate my data per 30 minutes. That would give me around 17,520 rows in the end. My questions are:


  1. 当功率列缺少某些值时,是否可以绘制时间序列?

  1. Is it possible to plot time series when you have some missing values for the Power column?

如何在30分钟前汇总Power值? (例如0:00:00至0:29:00; 0:30:00至0:59:00)

How to aggregate the Power value by 30 minutes please? (e.g., 0:00:00 to 0:29:00; 0:30:00 to 0:59:00)

非常感谢!

推荐答案

使用 dplyr 您可以做下一个(您可以将平均值更改为聚合函数):

With dplyr you can do the next (you can change mean to your aggregation function):

df %>%
  mutate(DateTime = as.POSIXct(paste(Date, Time))) %>%
  group_by(DateTime = cut(DateTime, breaks="30 min")) %>%
  summarize(Power = mean(Power))

将导致下一个输出:

             DateTime  Power
               <fctr>  <dbl>
1 2008-10-11 23:57:00 0.3576
2 2008-12-13 18:57:00 1.3760
3 2008-12-13 19:27:00 1.3580

这篇关于如何在R中每30分钟进行汇总的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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