程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了日期前固定数量观察的滚动窗口 - 但不是滚动日期窗口大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决日期前固定数量观察的滚动窗口 - 但不是滚动日期窗口?

开发过程中遇到日期前固定数量观察的滚动窗口 - 但不是滚动日期窗口的问题如何解决?下面主要结合日常开发的经验,给出你关于日期前固定数量观察的滚动窗口 - 但不是滚动日期窗口的解决方法建议,希望对你解决日期前固定数量观察的滚动窗口 - 但不是滚动日期窗口有所启发或帮助;

试图通过在数据表中创建一个数据窗口来运行许多简单的函数,但在混合固定数量的有序观察和移动日期时挣扎 - 不要与滚动日期范围内的任何数量的观察相混淆,大多数问题似乎都与哪些有关。

我们需要在当前观察日期之前按名称分组的最后 30 个观察结果,这可能发生在不同的天数内。

所以吉米、约翰和苏珊去年都在练习 tIDdlywink。

我们想知道他们每个人在过去 30 次尝试(或投篮)中成功投进底池的次数,例如过去 30 次尝试的滚动平均值。但是,这 30 次尝试都应该在它们翻转的当前日期之前,因此我们要排除今天进行的任何投篮。

因此一个名为 TIDdlywinks 的数据表可以记录每个镜头,观察:

玩家(玩家的名字) datetiR_307_11845@e(每次翻转的时间和日期,因此排序为我们提供了翻转的顺序) 日期(每次翻转的日期,因此我们可以按当前日期滞后所有观察结果) 成功(1 或 0,1 表示成功翻入底池)

可以创建滚动计数并因此按日期计算平均值,没问题,并且发现 R runner 包在这方面很有用,但它似乎只启用滚动日期窗口或序列,但不能混合使用。例如。如果要计算每个玩家在当前日期之前的过去 30 天内成功的次数,我们可以说:

library(data.tablE) 
library(runner)

dataset[order(datetiR_307_11845@E),rolling_wins_30 := sum_run(
  x = success,k = 30,IDx = as.Date(DatE),lag=1
),by=Player][is.na(rolling_wins_30),rolling_wins_30 := 0]

但我们不想这样做。我们想知道(例如)在当前日期(因此不包括当前日期)进行任何尝试之前,玩家在过去 30 次尝试中(因此严格顺序为 30 次观察的滚动窗口)获得了多少成功。所有玩家的练习量各不相同,因此需要一个基于翻转(即观察,而不是日期)的滚动窗口,但仍然需要按时间顺序排列,并且仍然需要排除当天的所有翻转.

如果我们想评估今天参加比赛的所有球员的当前状态,但基于他们在今天之前的最后 30 次翻转,这将非常有用。

找不到任何可以解决固定滚动观察窗口问题的任何内容,所有这些都在某个日期之前。

想法?

解决方法

无需将 klag用于不同的索引,您始终可以计算 30 个元素的总和/平均值并滞后一天

library(data.tablE) 
library(runner)

dataset[
  order(datetiR_307_11845@E),rolling_wins_30 := lag_run(
    sum_run(x = success,k = 30),lag = 1,idx = as.Date(DatE)
  ),by = Player
][is.na(rolling_wins_30),rolling_wins_30 := 0]

大佬总结

以上是大佬教程为你收集整理的日期前固定数量观察的滚动窗口 - 但不是滚动日期窗口全部内容,希望文章能够帮你解决日期前固定数量观察的滚动窗口 - 但不是滚动日期窗口所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。