问题标签 [windowing]

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.

0 投票
2 回答
1734 浏览

r - R - 计算不同宽度的滚动平均值的快速方法

我有一个数据框,其中包含多个日期(时间)的银行资产。每家银行都有一个唯一的 ID:

对于每家银行,我想计算资产的滚动平均值,根据连续时间值的数量改变宽度。因此,滚动平均值应包括银行资产的所有可用连续先前值。如果一家银行没有可用的先前价值,则它应等于资产。因此,我添加了一个列来计算连续时间值的数量,而不是rollapplyr从 zoo 包中使用,这给了我想要的结果,但是对于大型数据集,它太慢了:

如何使用更快的功能获得此输出?我rollmean从动物园、SMATTR 和ma预测中都知道,但这些不允许改变宽度。我的问题也可能与this question和this rblog有关,但是我对C++不熟悉,对函数编写也不太了解,所以我不太了解那些帖子。

编辑1:请注意,在我上面的代码中,它不是for-loop,而是rollapplyr,它需要很多时间。

编辑 2:滚动平均值应包括不超过最后 4 个值。也就是说,根据时间变量,连续值的数量与连续值一样多,但不超过最后 4 个值。抱歉问题不准确!:/ 我的措辞是基于使用“number.time”列的假设,在该列中很容易将所有值限制为最大值 = 4。

0 投票
1 回答
49 浏览

sql - SQL 窗口范围

我正在学习如何使用窗口函数并遇到了这个 SQL 语句。

我的问题是i_class分区是否适用于所有 3 个SUM函数,或者其中一些函数是否是使用group by分组计算的。

0 投票
1 回答
26 浏览

sql - 在postgres中的多个分组后选择一行

我在 postgres 数据库中有一个表,其结构如下:

现在我想实现以下目标:

  1. 在 groupme1 和 groupme2 之后对表进行分组
  2. 获取每个组的值
  3. 但只有每个组组合的最后一个条目(在日期之后排序)

例子:

我目前的方法如下所示:

这种方法的问题:

  • 它假定较高的日期具有较高的 id
  • 需要很长时间

有没有更快更好的方法来做到这一点?窗口功能可以帮助解决这个问题吗?

0 投票
1 回答
32 浏览

tsql - TSQL 识别非连续序列中的第一条记录

我尝试了 1 1/2 班次来解决我的问题集,但不能完全做到。用光标在大约 15 分钟内解决了它,它运行得足够快。但我想知道是否有办法做到基于集合。

我们有从 3rd 方 HR 应用程序中提取的员工状态变化记录:empid、recorddate、status。我需要确定 emp 状态随时间发生的每次变化的记录日期和状态。但是数据有问题。有时会有不同记录日期的行,但状态不会改变。

对于 emp 的任何状态更改,我都需要返回记录和状态。

因此,在下面的示例中,没有返回记录日期为 3/1/2000 的 emp #1 的记录,因为状态与之前的记录日期 2/1/2000 相同,并且没有记录 emp #1 的 6 /1/2000,因为状态值与最接近的较早记录日期的记录相比没有改变。

与 emp #2 相同的概念,该 emp 没有返回 7/1/2000 记录日期的记录,因为最接近的较早记录日期的状态没有改变

我尝试使用按 empid 和状态的分区、按 empid 排序、记录日期对不变的状态序列进行编号,然后从每个窗口“帧”中选择行号 1 以获得最早的出现,但没有运气。当状态可能在 emp 的记录中出现 > 1 次时,行号不会重置为 1,但在记录日期之间不连续。

谢谢肯

0 投票
0 回答
315 浏览

matlab - MATLAB:具有重叠窗口但没有填充的 Blockproc

我花了很多时间来理解和应用 Matlab 函数blockproc。我还阅读了有关此功能的 stackoverflow 上的一些帖子,例如thisthis,但我仍然无法按照我的意愿使用该功能。

基本上,我想要的只是图像上的一个滑动窗口,它与窗口重叠,但不(零)填充图像的边缘。

例如,在 10x10 的图像上,我想应用一个 8x8 的窗口,重叠为 2。如果

img = reshape(1:100,[10,10]);

然后,在 Matlab-Notation 中,我想得到

所需范围

我认为可以解决问题的命令是:

其中,4+2*2=8 是我的窗口大小,2 表示重叠。但是,这不起作用。我尝试了其他参数和值的组合,但没有运气。

如果有人可以帮助我,我会非常高兴!提前致谢!

0 投票
0 回答
434 浏览

c++ - 找到图像的 3x3 窗口并将平均值替换为整个图像的中心像素

我只想获取图像的 3x3 相邻窗口并用中心像素替换平均值并计算平均值、方差、熵以在 c++ opencv 中制作特征向量我做错了什么请建议我需要这些特征进行分类。

0 投票
1 回答
1097 浏览

streaming - 窗口结束的 Azure 流分析时间戳

我正在运行此查询的 Azure 流分析上运行一些测试作业:

事实证明,在某些情况下,窗口结束的时间戳是窗口滑动参数的倍数,但有时不是。

例如,slide = 2你得到这个窗口关闭时间戳:

或者,在这种情况下slide = 5

即使对于不同的滑动值(例如 2、3、4、6、...)也是如此。而且,这永远是真的!无论工作何时开始。

相反,有些值(例如 7、11)不遵循此规则。

有人可以回答为什么会这样吗?
我想知道 Azure SA 如何决定何时打开第一个窗口。

太感谢了!

0 投票
1 回答
313 浏览

apache-flink - Flink Streaming Windowing - 每个窗口的最后一个事件属于下一个窗口

我正在使用 Flink 1.2-Snapshot。我的数据如下所示:

  • id=25398102,sourceId=1,ts=2016-10-15 00:00:56,user=14,value=919
  • id=25398185,sourceId=1,ts=2016-10-15 00:01:06,user=14,value=920
  • id=25398210,sourceId=1,ts=2016-10-15 00:01:16,user=14,value=944
  • id=25398235, sourceId=1, ts=2016-10-15 00:01:24, user=3149, value=944
  • id=25398236, sourceId=1, ts=2016-10-15 00:01:25, user=71, value=955
  • id=25398239, sourceId=1, ts=2016-10-15 00:01:26, user=71, value=955
  • id=25398265, sourceId=1, ts=2016-10-15 00:01:36, user=71, value=955
  • id=25398310, sourceId=1, ts=2016-10-15 00:02:16, user=14, value=960
  • id=25398320, sourceId=1, ts=2016-10-15 00:02:26, user=14, value=1000

我正在运行以下代码来创建基于 Windows 的用户 ID:

MySession 触发器查看接收到的事件并检查用户 ID 以触发用户 ID 更改窗口。SessionWindowFunction 只是在窗口外创建一个会话。

以下是创建的会话:

  1. 会议:

    • id=25398102,sourceId=1,ts=2016-10-15 00:00:56,user=14,value=919
    • id=25398185,sourceId=1,ts=2016-10-15 00:01:06,user=14,value=920
    • id=25398210,sourceId=1,ts=2016-10-15 00:01:16,user=14,value=944
    • id=25398235, sourceId=1, ts=2016-10-15 00:01:24, user=3149, value=944
  2. 会议:

    • id=25398236, sourceId=1, ts=2016-10-15 00:01:25, user=71, value=955
    • id=25398239, sourceId=1, ts=2016-10-15 00:01:26, user=71, value=955
    • id=25398265, sourceId=1, ts=2016-10-15 00:01:36, user=71, value=955
    • id=25398310, sourceId=1, ts=2016-10-15 00:02:16, user=14, value=960
  3. 会议:

    • id=25398320, sourceId=1, ts=2016-10-15 00:02:26, user=14, value=1000

如您所见,问题是在每个会话中,最后一个事件实际上属于下一个窗口。由于最后一个事件已经在窗口中,因此触发窗口的决定有点晚了。

如何在不考虑该窗口中的最后一个事件的情况下触发该窗口?

0 投票
1 回答
75 浏览

fft - Hann 窗口以似乎没有意义的值开始和结束

我正在玩 mathdotnet 并尝试在 FFT 中使用不同的窗口。我对 Hann 窗口特别好奇(尽管我确信这也适用于其他窗口)。当我生成一个宽为 2048 个样本的 Hann 窗口时,我希望得到一组变量逐渐增加到峰值,然后以相同的速率逐渐减小。我得到的是:

如您所见,hann 窗口开头和结尾的值似乎完全没有意义,特别是考虑到任何超过 1 的值都没有意义......

生成一个样本少得多的窗口(我尝试了 20 个)工作得很好。

由于我觉得我对 FFT 或库本身的了解不够多,因此在征求您的意见之前发布错误报告感到不舒服。

0 投票
2 回答
668 浏览

matlab - 计算扇贝损失的函数

我想创建一个函数,使用扇贝损失公式计算矩形、汉明和布莱克曼窗口的扇贝损失值。我创建了一个函数,但它只返回答案 0,我犯了错误吗?

扇贝损失公式