问题标签 [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 - 使用 exp 函数在 R 中滚动应用行
我有df(A)
14 列和 1356 行的数据框。我有这个功能,用于为每 12 行应用一个总和,如移动平均线:
但在每 12 行中,我需要对 应用乘法exp(n/12)
,其中n
的数字是从 0 到 11。综合起来,结果可能是:
逻辑上每 12 行重复一次操作。是否可以将其应用于函数rollapply
或我需要编写一个循环for
?
r - roll_median 的 na.rm 行为?
快速提问:谁能帮助解释为什么我得到所有 NA 的滚动中值输出。我将 na.rm 设置为 TRUE 但这似乎没有帮助。谢谢!
作为参考,我希望正确的输出是:
我知道如何用 rollapply 做到这一点:
但是出于速度的原因(我正在处理具有数千万行的数据框),我希望使用 roll_median 来完成。有谁知道如何做到这一点?谢谢!
r - rollapply 出错:下标越界
我首先想描述我的问题:我想要做的是计算 24 小时窗口内价格峰值的数量,而我拥有半小时的数据。
我看过所有 Stackoverflow 的帖子,比如这个: Rollapply for time series
(如果有更多相关的,请告诉我;))
因为我不能也可能也不应该上传我的数据,这里有一个最小的例子:我模拟一个随机变量,将它转换为一个 xts 对象,并使用用户定义的函数来检测“尖峰”(在这种情况下当然很荒谬,但说明了错误)。
该函数按预期工作:它采用前面的 10 个值并计算平均值。
然后,我定义了一个自己的函数来查找峰值:一个峰值是一个局部最大值(高于它周围的 m 个点)并且至少与时间序列的平均值 + h 一样大。这将导致:
并且工作正常:回到示例:
但是,使用该rollapply()
函数会导致:
我首先想到,好吧,可能会发生错误,因为它可能会因为m
参数的原因而对第一个点运行 int 负索引。可悲的是,设置m
为零不会改变错误。
我也试图追踪这个错误,但没有找到源头。有谁可以帮我离开这里吗?
r - 优化rollapplyr自定义函数
我有以下数据:
为此,我正在运行下面的代码,该代码创建变量 v 的滚动平均值,忽略异常值和 NA。该代码正在运行,但性能很差。我确信有更有效的方法可以使用 apply 或类似的东西来运行它,但我未能成功创建一个更快的版本。任何人都可以阐明如何提高效率吗?
r - 使用多个、累积和滞后参数的函数生成的 Data.table 列
我正在尝试向 data.table 添加一列,其中 data.table 的该列通过将每组值的累积(滞后 1)向量以及组级属性传递给函数来填充,并且然后返回适当的值。
我有 800 万行,每个代理日一个。我的函数比 myfun 更复杂,但关键是它从 agent-day 表中获取两个参数:一个向量 (Vector),其中包含特定代理在特定日期之前所有天的值,以及一个代理向量每个代理都相同的级别属性 (PerAgent)。
“答案”列是我想要生成的(显然不是像我在这里所做的那样手动生成)。
我现在所拥有的不起作用,因为我试图传递第二个参数是:
如果我不需要将第二个参数传递给(简化的)函数,则可以:
非常感谢您的帮助。
r - 如何加速/改进滚动平均功能?
我的数据是 988、785 obs。3 个变量。我的数据的一个较小的例子如下:
我的设备的采样率为 100 Hz。我希望在 1 到 10 秒的时间内计算Acceleration
每个的滚动平均值。ID
我使用以下方法执行此操作:
但是,我现在需要计算 1 到 10 分钟的滚动时间。我可以通过使用上面的代码并替换为以下行来做到这一点:
但是,这需要数小时才能运行我的数据集,并导致我的 Mac 上的 RStudio(详情如下)挂起!有没有办法a)整理上面的代码或b)使用不同的包/方法来实现更快的结果?
谢谢你。
r - 关于 zoo::rollapply 的几个问题
我对rollapply
's width
option 的理解是它指定了函数将在其上运行的窗口大小,而by
options 指定了这个窗口的移位大小。这是我的数据集:
以下是证实我在上面写过的示例:
尽管如此,我有几个问题:
1)为什么这个在工作时返回错误max(20)
?一切都与上一个示例相同,除了print
替换为max
:
如何调试这些类型*apply
族函数错误?
2) 在选项中使用大于 1 的向量的目的是什么?with
为什么下面的代码在奇数位置打印一个数字输出,但将奇数位置的两个数字分配给w12
变量?
3)将向量和列表传递给参数有什么区别width
(与以前的输出相比,这是完全不同的)?
4)做by.column
什么?我期待它与矩阵有关,所以我尝试了以下操作:
r - 在 data.table 中使用 rollapply 对两个变量进行 t.test
我正在尝试t.test
使用来自两个单独列(sample1 和 sample2)的样本运行 7 天滚动窗口的两个样本 t 检验。从第一天开始,我想为每个测试获取 p 值并将它们添加到我当前的数据中。我尝试rollapply
了几种形式,但都没有成功。
我收到以下错误:
第二次尝试:
仅创建一个测试并重复值。
第三次尝试:
我收到以下错误:
r - 在 R 中计算超过 1 年时间窗口的累积产品
我有问题要求我计算一系列 1 期收益的滚动乘积。滚动窗口的长度是可变的。目的是获得尽可能接近 12 个月窗口的 1 期回报的滚动产品。
for
我已经能够通过循环和语句使用蛮力产生一个可行的解决方案if
,但是我想知道是否有一个优雅的解决方案。我花了很多时间尝试rollapply
其他类似的功能,但我无法获得解决方案。
下面的数据说明了这个问题。
在示例中,第 29 行的 12 个月回报计算为从第 26 行到第 29 行的 1 个期间回报的乘积,因为第 25 行和第 26 行之间包含 02-04-15(从 01-04-16 开始的 365 天)。另一方面,第 15 行的 12 个月回报是 NA,因为 30-03-13(从 30-03-14 开始的 365 天)超出了我可观察到的 1 个周期回报的时间窗口。
如果有人能提出一些解决这个问题的方法,我会很高兴。
只是为了清楚起见,如果提供的数据没有多大意义,是因为这是我为说明目的而创建的更大数据库的缩减版本。
r - data.table 列上的差异
对此真的很沮丧。我只想获取 data.table 中的行之间的差异。其中差异(n)=值(n)-值(n-1)。因此,与我所拥有的相比,结果应该移动 1 个位置,并且每个“变量”的第一个位置应该是 NA。即差异应该是(NA,4,-2,NA,1,-8)。每个“变量的第一个值应该是 NA,因为没有位置 n-1。知道如何修改函数来完成此操作吗?真的很想知道如何使用 rollapplyr 来做到这一点,以便我自己理解.
谢谢。
数据表: