如何在 R 中求 5 分钟间隔的总和

2023-12-10

我有一个数据集,其中包含 6 个不同站点每分钟的降水量记录。我想对每个电台每 5 分钟进行一次汇总。 这些是我的数据集的前 5 行(总共 17280 行):

  P_alex P_hvh P_merlijn P_pascal P_thurlede P_tosca                date
    0     0         0        0          0       0 2011-06-27 22:00:00
    0     1         5        2          0       0 2011-06-27 22:01:00
    0     0         0        0          0       0 2011-06-27 22:02:00
    0     6         2        3          0       0 2011-06-27 22:03:00
    0     0         0        0          0       0 2011-06-27 22:04:00

我试图在互联网上寻找帮助,但找不到对我有帮助的答案。

我还需要每小时总和,为此我使用以下代码,但如果您想进行其他求和,则此代码毫无用处

uur_alex = tapply(disdro$P_alex, as.POSIXct(trunc(disdro$date, "hour")), sum)

现在我想要一个可以用来进行不同求和的代码,所以需要 5 分钟(如问题中所示),但也需要半小时。 我希望有人能帮助我。


cut与日期时间对象配合得很好,因此可用于创建您希望聚合的 5 分钟间隔。这是一个例子:

首先,一些示例数据:

set.seed(1)
mydf <- data.frame(P_alex = sample(0:5, 40, replace = TRUE),
                   P_hvh = sample(0:3, 40, replace = TRUE),
                   date = as.POSIXct("2011-06-27 22:00:00") + 60 * 0:39)
list(head(mydf), tail(mydf))
# [[1]]
#   P_alex P_hvh                date
# 1      1     3 2011-06-27 22:00:00
# 2      2     2 2011-06-27 22:01:00
# 3      3     3 2011-06-27 22:02:00
# 4      5     2 2011-06-27 22:03:00
# 5      1     2 2011-06-27 22:04:00
# 6      5     3 2011-06-27 22:05:00
# 
# [[2]]
#    P_alex P_hvh                date
# 35      4     1 2011-06-27 22:34:00
# 36      4     3 2011-06-27 22:35:00
# 37      4     3 2011-06-27 22:36:00
# 38      0     1 2011-06-27 22:37:00
# 39      4     3 2011-06-27 22:38:00
# 40      2     3 2011-06-27 22:39:00

现在,执行聚合。在下面的示例中,我们聚合原始数据集中的所有列,但从数据集中删除“date”变量(使用mydf[setdiff(names(mydf), "date")]).

# Aggregate all columns by the intervals created with cut.
# For the dataset, we drop the original date column since
#   it is no longer needed here. Our function is "sum"
aggregate(. ~ cut(mydf$date, "5 min"), 
          mydf[setdiff(names(mydf), "date")], 
          sum)
#   cut(mydf$date, "5 min") P_alex P_hvh
# 1     2011-06-27 22:00:00     12    12
# 2     2011-06-27 22:05:00     16     8
# 3     2011-06-27 22:10:00     12     5
# 4     2011-06-27 22:15:00     17     6
# 5     2011-06-27 22:20:00     10     8
# 6     2011-06-27 22:25:00     11     8
# 7     2011-06-27 22:30:00     12     7
# 8     2011-06-27 22:35:00     14    13
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 R 中求 5 分钟间隔的总和 的相关文章

  • picker输入字体或背景颜色

    我在闪亮的仪表板中使用 pickerInput 这很好 除了一个问题 背景颜色和字体颜色太相似 使得过滤器选择难以阅读 有什么办法可以改变背景或字体颜色吗 如果可能的话 我想继续使用 pickerInput 但如果有一个带有 selectI
  • `as.matrix` 和 `as.data.frame` S3 方法与 S4 方法

    我注意到定义as matrix or as data frame作为 S4 类的 S3 方法 使例如lm formula objS4 and prcomp object 开箱即用 如果它们被定义为 S4 方法 则这不起作用 为什么将方法定义
  • R ggplot 中的柯尔莫哥洛夫-斯米尔诺夫图

    我正在尝试在 r 中绘制 KS 图 一切似乎都很顺利 除了我只能使用颜色来可视化两个不同的样本而不是线型这一事实 我已经尝试过以下方法 sample1 lt SD13009 sample2 lt SD13009PB group lt c r
  • 从 data.frame 在 ggplot 图例中添加信息

    我想在图例中添加信息 哪个传感器具有该值 这是我的代码 z lt data frame a c sensor 1 sensor 2 sensor 3 sensor 4 sensor 5 sensor 6 sensor 7 sensor 8
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • 在 RMarkdown 输出到 PDF 时缩进而不添加项目符号点或编号

    之前有人问过如何在没有项目符号的情况下缩进文本 RMarkdown 中的点 但这是针对 HTML 输出的 在 RMarkdown 中缩进而不添加项目符号点或数字 https stackoverflow com questions 47087
  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • 在ggplot中设置y轴中断

    我在代码中设置中断时遇到困难 我尝试添加breaks seq 0 100 by 20 但似乎无法让它正常工作 本质上我希望 Y 轴从 0 到 100 每 20 个刻度一次 YearlyCI lt read table header T te
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o
  • Python:如何在不先创建整个列表的情况下计算列表的总和?

    通常我们必须 1 声明一个列表 2 使用以下方法计算该列表的总和sum 但现在我希望指定一个以 1 开头 间隔为 4 100 个元素的列表 如下所示 1 5 9 13 17 21 25 29 33 37 我不想涉及数学公式 所以 1 如何在
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • 平滑连续 2D 点

    UPDATE 感谢 user20650和 李哲源Zheyuan Li 这是我想出的解决方案 Example data set df 3600 observations points Create a vector of the cumula
  • 如何在 R 中的 dygraph 标题中使用 UTF-8 字符

    使用 Rstudio Windows8 当我使用 dygraph 函数绘制时间序列时 在尝试在主标题中使用 UTF 8 字符时遇到问题 library dygraphs dygraph AirPassengers main T tulo 这
  • 在 Google Colab 上的 R 笔记本中安装 python 库

    我正在尝试在 Google Colab 上的 R 笔记本中安装 python 库 为此我使用 reticulate 包 library reticulate py install pandas 但我得到的结果是这个错误 Error coul
  • 无法将“gather”输出的列名称更改为默认名称以外的任何名称

    我正在尝试使用gather in the tidyr包 但我无法更改默认名称的输出列名称 例如 df data frame time 1 100 a 1 100 b 101 200 df long df gt gather foo bar
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • ggplot2:带有 geom_line 的 x 轴因子不起作用

    我想要一个线图 其中value绘制为函数expt每级一行var 这是我的数据 lines lt expt var value 1 none p 0 183065327746799 2 none p 0 254234138384241 3 n
  • R:改变堆积条形图的颜色

    library ggplot2 df2 lt data frame supp rep c VC OJ each 3 dose rep c D0 5 D1 D2 2 len c 6 8 15 33 4 2 10 29 5 head df2 g
  • 安装 2.15 后 ggplot2 中的 alpha 通道不起作用

    更新到 R 2 15 后 ggplot 中的 alpha 通道似乎不再起作用 plot rnorm 100 rnorm 100 bg cc000055 pch 21 工作得很好但是 qplot rnorm 100 rnorm 100 col

随机推荐