【问题标题】:Continuous Time count For data is out of band-连续时间计数对于数据带外-
【发布时间】:2015-12-06 23:46:54
【问题描述】:

我有频率数据(间隔 -1 分钟)。我想计算数据在带外的连续时间(带 - 49 到 51)。我不想要总时间。我需要连续的时间,它可能发生在不同的时间。假设一天下午 6 点的频率样本为 48.3 48.2,48.7,49.1。结果应该是 3 分钟。使用 R 或 Excel,我该怎么做?

【问题讨论】:

  • 这不取决于你应用什么窗口吗?您还可以向我们展示数据的布局方式并说出您的尝试。
  • 我没有找到任何计算连续时间的方法。我尝试使用 if 条件为 true 它提示 1.other wise 为零。最后,我计算总数为 1 ..但我不需要这个。我希望频率在下午 4 点达到 7 分钟,在晚上 7 点达到 9 分钟......我不会以我的方式得到这种类型的解决方案,我是电力系统工程师。我使用 R 不是 excel 函数的常用用户。这是我们操作网格所必需的。请建议我在一分钟内的第一列时间样本中有两列。第二列有频率

标签: r excel tableau-api


【解决方案1】:

在 Tableau 中,您可以使用沿时间维度运行的表计算。

例如,将名为 in_band 的计算字段定义为

[Frequency] >= 49 and [Frequency] <= 51

然后是一个名为 current_minutes_out_of_band 的计算字段

if attr(in_band) then 0 else previous_value(0) + 1 end

如果您将 MINUTE(TIME) 放在 Rows 架子上并使其离散,则可以将 current_minutes_out_of_band 放在 Text 架子上,然后观察计数器累积带外分钟数。

只要频率返回所需频段,此表达式就会将计数器重置为零。如果您想要一个运行总计,那就更容易了——只需定义一个字段,如果 in_band 返回 1,否则返回 0。将该字段放在架子上,右键单击它并选择快速表格计算运行总计

这假设每分钟有一个数据行,没有间隙。它可以被概括以避免这些假设。

表计算是在客户端/服务器划分的客户端计算的,因此需要通过线路获取每一行时间和频率。对于大型数据集,通常在数据源进行计算并仅发回聚合结果会更有效。 SQL 窗口函数或 Oracle 分析函数可以做到这一点。

表计算还取决于正确设置寻址和分区。有关详细信息,请参阅有关表格计算的文档。

【讨论】:

    【解决方案2】:

    在 Excel 中,您可以使用数组公式来搜索范围内的下一个频率:-

    =MATCH(1,(B2:B$10>=49)*(B2:B$10<=51),0)-1
    

    如果您的频率从 B2 开始。

    必须在 C2 中使用 CtrlShiftEnter

    输入

    这是一个修改后的版本,它允许最后一个频率超出范围的情况,假设频率值之间没有空格并且末尾有一个或多个空格:-

    =MATCH(1,(B2:B$10>=49)*(B2:B$10<=51)+(B2:B$10=""),0)-1
    

    【讨论】:

      【解决方案3】:

      这可以在 R 中使用 rle 函数优雅地完成,该函数计算数据的行程编码。考虑一些示例输入:

      times <- paste0("18:0", 0:8)
      freq <- c(48.3, 48.2, 48.7, 49.1, 50, 51.1, 51.2, 52, 50)
      

      我们可以使用rle 确定带外时间的长度(2 段,每段 3 分钟):

      with(rle(freq < 49 | freq > 51), lengths[values])
      # [1] 3 3
      

      我们还可以确定这些运行结束的时间:

      with(rle(freq < 49 | freq > 51), times[cumsum(lengths)][values])
      # [1] "18:02" "18:07"
      

      【讨论】:

      • 谢谢它正在工作。它是如此简单和有用。它将帮助我们保持频率。我还可以看到具有相应频率的时间戳(即越过上限)..it会更有用..通过使用这个我可以说“在 1800 小时频率下超出了 3 分钟”
      • @rahul 我已更新以包含在这些运行结束时计算的代码
      • 非常感谢,之前我认为 r 只适用于数据可视化,但它比 excel 宏做的更多。我认为 excel 宏用于将数据从一个位置传输到另一个位置 R 也可以做到以更有效的方式
      猜你喜欢
      • 1970-01-01
      • 2014-01-17
      • 2020-07-02
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多