每天给定间隔的最大坡度

2023-12-26

我有一组时间序列数据,其中包含从三个不同位置在多天内每 10 分钟测量一次的地表温度(实际上是 2 年的数据)。我感兴趣的是计算每个站点每天任意 60 分钟间隔的最大斜率(温度升高速率)。

因此,本质上我希望每天工作 10 分钟,有 60 分钟的窗口,并计算每个窗口的斜率,然后确定最大斜率及其在一天中发生的时间。然后我想将此函数应用于数据集中的每一天。日期/时间采用以下格式 (%m/%d/%y %H:%M)。

我正在想象使用 ddply 和 Zoo 包和函数 rollapply 来执行类似伪代码的操作

ddply(数据, .(位置, 天), 函数(d) max(rollapply(坡度(d$温度~d$时间, 数据=d)))

其中“时间”是每天(每 10 分钟)内的时间,“天”只是日期,因此该函数可以应用于所有日期。显然,“斜率”不是 R 函数,必须编写它来计算实际斜率。

有谁对 Zoo 和 rollapply 有更多经验,或者可以想出另一种方法来解决这个问题?

我在此处包含了来自单个位置的一些示例数据(因此位置列已被删除)https://gist.github.com/natemiller/42eaf45747f31a6ccf9a https://gist.github.com/natemiller/42eaf45747f31a6ccf9a

感谢您的任何帮助, 内特

编辑:此后,我结合使用了下面的 geektrader 的 Joshua Ulrich 的答案,并使用基本代数将值转换回每小时 ℃ 的单位

    CperH<-dat$Temp-(dat$Temp/(1+dat$ROC))

效果很好。


您可以使用xts时间序列包非常适合时间序列分析。 结合TTR包,你可以很容易地得到你想要的东西。

require(xts)
require(TTR)
dat <- read.csv("https://gist.github.com/natemiller/42eaf45747f31a6ccf9a/raw/916443cfb353d82e8af6cdebdd80b2e956317b24/sampleTempData.csv")

dat.xts <- .xts(x = dat$Temp, index = as.POSIXct(strptime(dat$Date, format = "%m/%d/%y %H:%M")))
names(dat.xts) <- "Temp"
head(dat.xts)
##                     Temp
## 2011-04-11 03:48:00  9.5
## 2011-04-11 03:58:00  9.5
## 2011-04-11 04:08:00  9.5
## 2011-04-11 04:18:00  9.5
## 2011-04-11 04:28:00  9.5
## 2011-04-11 04:38:00  9.5


dat.xts$ROC <- ROC(dat.xts, n = 6)
head(dat.xts, 10)
##                     Temp ROC
## 2011-04-11 03:48:00  9.5  NA
## 2011-04-11 03:58:00  9.5  NA
## 2011-04-11 04:08:00  9.5  NA
## 2011-04-11 04:18:00  9.5  NA
## 2011-04-11 04:28:00  9.5  NA
## 2011-04-11 04:38:00  9.5  NA
## 2011-04-11 04:48:00  9.5   0
## 2011-04-11 04:58:00  9.5   0
## 2011-04-11 05:08:00  9.5   0
## 2011-04-11 05:18:00  9.5   0

dat.xts[which.max(dat.xts$ROC), ]
##                     Temp       ROC
## 2011-04-12 09:48:00 14.5 0.5340825


# If you want to do analysis on per day basis.
dat.xts <- .xts(x = dat$Temp, index = as.POSIXct(strptime(dat$Date, format = "%m/%d/%y %H:%M")))
names(dat.xts) <- "Temp"
head(dat.xts)
##                     Temp
## 2011-04-11 03:48:00  9.5
## 2011-04-11 03:58:00  9.5
## 2011-04-11 04:08:00  9.5
## 2011-04-11 04:18:00  9.5
## 2011-04-11 04:28:00  9.5
## 2011-04-11 04:38:00  9.5


ll <- split.xts(dat.xts, f = "days")


ll <- lapply(ll, FUN = function(x) {
    x$ROC <- ROC(x, 6)
    return(x)
})

max.ll <- lapply(ll, function(x) x[which.max(x$ROC), ])

max.ll
## [[1]]
##                     Temp       ROC
## 2011-04-11 13:38:00 20.5 0.4946962
## 
## [[2]]
##                     Temp       ROC
## 2011-04-12 09:48:00 14.5 0.5340825
## 
## [[3]]
##                     Temp       ROC
## 2011-04-13 10:18:00 15.5 0.4382549
## 
## [[4]]
##                     Temp       ROC
## 2011-04-14 10:38:00 14.5 0.3715636
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每天给定间隔的最大坡度 的相关文章

随机推荐

  • Julia UndefVarError:未定义子类型

    不清楚为什么我得到ERROR LoadError UndefVarError subtypes not defined执行 jl 文件时 但从 REPL 执行时则不然 E g abstract type Asset end abstract
  • 使用 Eclipse 在远程计算机中运行 Spark/Cloudera 应用程序

    我在理解使用 Scala Spark shell 和 Hadoop 环境进行开发的逻辑架构时遇到了一些问题 为了更好地描述逻辑架构 我画了一个小架构 如图所示 我在我的个人电脑上安装了 Eclipse 我想以远程模式从我的电脑运行 scal
  • C++ Windows API - 如何检索字体缩放百分比

    我想检索 把文字变大 C Windows API 应用程序中的百分比 我知道如何检索缩放 DPI 系数 但我还想包括字体缩放百分比 请参阅附图 上值 而不是下值 最终 我想要制作保留用户字体和 DPI 缩放设置的应用程序 以便完全支持辅助功
  • Kivy 日期选择器小部件

    已解决 请参阅下面的已接受答案的应用程序和功能 kivy DatePicker 小部件的源代码 我一直在学习 Kivy 并决定制作一个日期选择器小部件作为学习练习 import kivy kivy require 1 4 0 from ki
  • 在android中将SQLite数据库与远程mysql数据同步

    android中如何同步SQLite数据库和远程MySQL数据 为了说清楚 我想知道sqlite数据和远程mysql之间的同步是如何工作的 即 当远程mySQL数据库更新时 SQLite数据也应该更新 而无需按下任何按钮或向下滚动 如何使用
  • 使用线程打印奇偶数

    使用线程打印奇偶数 创建一个线程类 两个线程实例 一个将打印奇数 另一个将打印偶数 我做了以下编码 但到了死锁状态 有人可以解释一下这可能是什么原因吗 public class NumberPrinter implements Runnab
  • 我可以在某些列值上使用 pandas 数据框读取一系列行吗?

    这是我的数据 prakash 101 Ram 107 akash 103 sakshi 115 vidushi 110 aman 106 lakshay 99 我想从中选择所有行akash to vidushi或所有行Ram to aman
  • UICollectionview rollToItemAtIndexPath,在动画完成之前不加载可见单元格

    我有一个UICollectionView有 142 个电池 7 5 随时可见 我正在从以下位置移动一个单元格indexPath0 表示 100 但我也想滚动到那个新位置 下面的代码工作正常 但它对移动和滚动进行动画处理 然后加载中央 移动单
  • 如何向 WiX 工具集添加可选 UI

    我已经为项目部署制作了一个安静的安装程序 无需单击任何按钮 但安装过程中会显示一些进度条 这次我想添加一个可选的图形用户界面 默认情况下 当给出参数时 安装程 序应该直接运行而不单击任何内容 比方说 msiexec范围 qf 安装程序会弹出
  • Eclipse:在 log4j.xml 中引用 log4j.dtd

    我已经使用 log4j 有一段时间了 我通常在 log4j xml 的顶部使用它 可能就像许多其他人一样 根据 Google 的说法 这是the方法 显然这是可行的 但是 Eclipse 不提供用于编写 XML 等内容的上下文相关帮助 此外
  • webkit-transform 覆盖 Chrome 13 中的 z-index 排序

    Update 抱歉未能添加我们也分层了很多的小细节div元素彼此叠加z index 在对这个问题进行更多研究之后 似乎webkit transform实际上与z index顺序 并且实际问题与动画本身无关 结束更新 我目前正在开发一个应用程
  • 为什么 getElementsByTagName 返回未定义?

    我正在尝试打电话document getElementsByTagName 我回来了undefined结果 无论我传递什么参数 即使我通过了 我尝试用谷歌搜索它 但所有搜索结果都是关于 getElementsByTagName 结果数组的元
  • C# 字典到 .csv

    我有 C Dictionary我想创建一个 csv从中获取文件 例如我有这本字典 Dictionary
  • 设置 Visual Studio 的“附加到进程”对话框中显示的“标题”值?

    当您在 Visual Studio 中选择 调试 附加到进程 时 显示的对话框具有 标题 列 默认情况下 这显示属于该进程的主窗口的标题 例如 它可能会显示 这是一个漆黑的暴风雨之夜 记事本 如何为没有主窗口的应用程序 例如 Windows
  • 为什么不对临时对象进行非常量引用? [复制]

    这个问题在这里已经有答案了 C 只允许将临时对象分配给 const 引用 它不允许分配临时对象来引用 例如 String a String test Error const String a String test Ok 我到处谷歌搜索这个
  • 为什么我的 ES6(使用 Babel)类在实例方法中显示“this”未定义?

    我正在使用 Hapi JS 在 Node 中构建一个应用程序 我有一个身份验证插件类 它给我带来了各种各样的问题 当我尝试引用时this从类的方法中 我收到一条错误消息this未定义 为什么会发生这种情况 摘录 class OAuth co
  • Spring:将某种类型的数组或列表注入到 bean 中

    如果我有一个界面I以及一些实现它的类 是否可以注入数组I or List i 变成豆子 我发现这可以做到List using i
  • PHP/CodeIgniter - 在 __construct() 中设置变量,但无法从其他函数访问它们

    我很高兴遇到了一些变量范围问题 也许我只是需要更多咖啡 这是我的 简化的 代码 这是在 CodeIgniter 2 中 class Agent extends CI Controller public function construct
  • 如何识别扫描的PDF文件中的图像?

    我正在尝试识别扫描的 PDF 文件中的图像 而不是文本 最好使用 python 有什么办法可以做到这一点吗 举一个简单的例子 假设您扫描了一本书的一章 页面有三种可能的选项 仅包含文字 仅包含一张 或多张 图像 包含文本和图像 我想输出属于
  • 每天给定间隔的最大坡度

    我有一组时间序列数据 其中包含从三个不同位置在多天内每 10 分钟测量一次的地表温度 实际上是 2 年的数据 我感兴趣的是计算每个站点每天任意 60 分钟间隔的最大斜率 温度升高速率 因此 本质上我希望每天工作 10 分钟 有 60 分钟的