问题标签 [rollapply]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 使用 rollapply() 获取特定/自定义行的平均值
我在 R 中使用rollapply
(来自zoo
包)来获取数据框中一系列行的滚动平均值。
对于焦点行所在的每一行,x
我试图获得多种方法。我可以用循环来做到这一点,但它很慢,我尽量避免循环。
目的是获得 4 种不同规格的滚动装置:
- 行
x
,x-1
和x+1
: "Rat3"的平均值 x
逐行的平均值x+7
:“RatE”x+8
行的平均值x+15
:“RatL”x
行的平均值x+15
:“RatJ”
使用循环我可以得到所有这些,但它很慢:
我可以使用以下功能获得 Rat3 rollapply
:
但我被困在如何修改它以使其不以价值 $x$ 为中心,而是使用 $x$(或 $x+8$)作为滚动平均值的起点。如何设置rollapply
函数以操纵它“移动”滚动平均窗口的方式?
这是一个不优雅的解决方案:
r - 自动计算移动窗口曲线下面积
我试图在一系列连续时间点找到太阳辐射强度图下的区域。基本上我想要过去 24 小时太阳辐射在 7 天内每小时的积分 - 过去 24 小时的移动总和 - (我怀疑土壤中的温度是过去 24 小时太阳辐射的结果)
这是我正在使用的代码,它可以工作,但我想自动化它,以便我可以轻松更改积分时间窗口(尝试 12、18、24,36 小时)并获得打印/保存的每小时积分太阳辐射表我可能会根据我的每小时温度数据绘制的值以查看是否存在关系)
这里: Rg - 10 分钟测量中的太阳辐射 num - 数据框中的条目号 AUC_xxx - 过去 24 小时的总太阳辐射
我尝试使用 rollapply,但我又被卡住了:
谢谢您的帮助 !
r - 如何更有效地计算滚动协方差
我正在尝试计算 R 中的一组数据(我的 x 变量的每一列)和另一个(y 变量)之间的滚动协方差。我想我可以使用其中一个应用函数,但找不到如何滚动两个同时输入一组。这是我尝试过的:
但没有人在做我想做的事。我发现的一个解决方案是使用for循环,但想知道我是否可以在 R 中比:
这给了我预期的结果:
r - 具有动态窗口的移动平均线
我正在尝试向我的数据表中添加一个新列,其中包含以下一些行的平均值。然而,要为平均值选择多少行取决于行的时间戳。
下面是一些测试数据:
我想添加一个列,其中包含所有需求的平均值,这些需求发生在相应周前三周的周(“Weekstart”)(按艺术分组,不包括实际周)。
使用 zoo-library 中的 rollapply,它的工作方式如下:
然而问题是,一些数据丢失了。在示例中,Art b 的数据缺少第 4 周,第 4 周没有需求。因为我想要前三周的平均值,而不是前三行的平均值,所以平均值是错误的。相反,Art b 第 6 周的结果应如下所示:
(6 而不是 14/3,因为只计算第 5 周和第 3 周:(8+4)/2)
到目前为止,这是我累的:
可以循环遍历以下行的一周的最小值,以创建一个向量,为每一行定义“宽度”应该有多宽(新列“rollwidth”):
但这似乎很不专业(请原谅我的技能不好)。而且,不幸的是,带有 width 和 rollwidth 的 rollapply 不能按预期工作(产生警告,因为 'rollwidth' 被视为表中的所有 rollwidth):
工作是什么
但话又说回来,平均值包括实际的一周(不是我想要的)。
有谁知道如何应用一个标准(即几周的差异应<= 3)而不是参数宽度的行数?任何建议表示赞赏!
r - For-Loop 的替代方案:如何在 R 中使用滚动窗口进行提升?
我正在寻求帮助优化我的代码以摆脱循环并提高计算速度。我对该领域和 R 非常陌生。我在具有滚动窗口的线性时间序列模型上运行组件明智的梯度提升回归。我使用每个窗口的 X 上回归 y 的系数来预测 y 的下一个“窗口外”观察。(稍后我将评估预测的准确性)
我的数据是 1560 个不同的时间序列(包括原始序列的滞后),大约有 540 个观测值(数据框尺寸为 540x1560)
我调查了rollapply
但无法让它工作。特别是我不知道如何预测每个窗口(每次迭代)的 yhat。
任何提示表示赞赏(需要永远在我的笔记本电脑上运行)!
PS:我也在研究使用multicore
或parallel
包。特别是 b/c 我稍后将使用交叉验证作为停止标准。但我只是开始研究它。但是,对此的任何提示也值得赞赏!
编辑:使用内置数据的最小工作示例(虽然不是时间序列):
r - rollapply na.rm = TRUE 给出 0 值而不是 NA
我有一个简单的问题,我似乎无法在 google、stackoverflow 或 stackexchange 上找到答案。我目前正在使用示例rollapply
来查找包含 NA 的某些值的总和。例如:
这输出:
这看起来不错,但是,有两次连续有 3 个 NA。求和功能将 NA 交换为 0。不幸的是,这不适用于我将要使用的数据,因为 0 是一个有意义的值。有没有办法再次用 NA 替换 0?
我正在寻找如下输出:
先感谢您!
r - 查找向量的相似元素并修改其间的所有内容
我有一个大数据框 (df),二项式值范围为 1 到 2。数据中也包含 NA。作为一个实际示例,我将创建一个包含用户数据子集的短向量:
作为结果,我基本上想要的是一个函数,它搜索2
数组的第一个和第二个 s 并将此间隔内的所有内容转换为 2。但是,如果第二个和第一个 2 的位置之间的差异 > 3 然后值保持原样并且不执行任何更改。
除了上述之外,该函数还必须对 的每个值进行循环df
。例如,再次考虑以下情况:
该函数应具有以下结果:
请注意,df_outcome
第一个和第二个 2 之间的值没有合并,因为它们的位置差异大于 3。另一方面,其他非 2 值也相应更改。
我试图做的(但它不能正常工作):
rollapply
在包中的帮助下zoo
,我尝试创建一个函数来查找数组的第一个和第二个 2 并执行上述修改。
然后我使用嵌套它,rollapply
这样我就可以为每个循环指定一个特定的宽度以及其他参数,例如结果索引的位置(左)。
问题是用户生成的函数在应用于向量时有效。但是,当作为参数嵌套在rollapply
函数中时,它会返回错误:
(which(q %in% 2)[1]):(which(q %in% 2)[2]) 中的错误:NA/NaN 参数调用自:FUN(data[replace(posns, !ix, 0) ], ...)
我想我在使用rollapply
数据或数据格式方面存在一些错误,但我不明白可能是什么问题。我考虑使用rollapply
,因为我的数据很长,并且是为不同的用户生成的。因此,我需要一个函数,该函数还可以根据其他变量(例如in或inUser_ID
的参数)拆分数据。.variables
ddply
by
data.table
期待您的支持。
r - 事件随时间序列的滚动计数
我正在尝试在一系列时间范围内按组计算滚动次数/发生次数总和。
我有一个包含一些示例数据的数据框,如下所示:
我为每个唯一的“组”迭代单个数据帧,例如,这就是“A”组的外观(它们存在于每一行中,无论是在 group1 还是 group2 中)。
我想计算“A”(然后是每个组)在一个时间范围内的事件发生次数 - 事件的“日期”(即当前行日期)和前 4 天。我想向前滚动,例如,第 1 行的计数为 1,第 2 行的计数也为 1(除当前日期外,过去 4 天内没有事件),第 3 行将有 2,行4 会有 3 等等。
对于每一行,我想最后有一列基本上说,在这个事件日期,在当前日期(如日期列中所示)和过去 4 天内发生了 X 个事件.
r - 避免 NA 在使用 data.table 的组内滚动最后 n 个观察值的总和
根据我了解到的这种威胁,以下 data.table 中变量 b 的滚动总和可以实现如下:
数据创建+计算滚动总和:
当前 + 所需输出:
现在有为前两个 obs 生成的 NA。在每个按组。我需要调整其中一种选择以仅对当前 obs 求和。(最后两个 obs。)在组索引开始的情况下(在位置 2)。这应该是可概括的,以便我可以考虑最后 n 个值的窗口并处理异常。
任何想法?
r - 如何计算R中移动窗口内的平均斜率
我的数据集包含 2 个变量y 和 t [05s]。y 每 05 秒测量一次。
我试图计算移动20-second-window内的平均斜率,即在计算第一个 20-second 斜率值之后,窗口向前移动一个时间单位(05 秒)并计算下一个 20-second-window,产生连续以05 秒为增量的20 秒斜率值。
我认为使用 rollapply (动物园包)计算滚动回归可以解决问题,但是我一遍又一遍地为每个窗口获得相同的截距和斜率值。我能做些什么?
我的数据:
R-代码: