【问题标题】:filter groups where max value is greater than limit过滤最大值大于限制的组
【发布时间】:2023-03-10 01:11:01
【问题描述】:

我有一个具有以下特征的数据框(tsibble)。还有其他 STAT_NAME 的最大值也较低。

STAT_NAME 最大值 数据库时间 83487.082433 sql执行经过时间83322.591389 数据库 CPU 63712.585025 PL/SQL 执行经过时间 620.239918 硬解析(共享标准)经过时间 215.748621

我想保留最大大于 500 或某些特定限制的 STAT_NAME(组)。在本例中为 500。我看到了查找最大行的示例,但我试图消除具有非常低值的组。几乎是一个噪音过滤器。我需要保留峰值较高的组,因为这是性能数据。消除具有“非常小的”值的组。如果这是有用的信息,则基于时间。

类似:

tsallstm 有

SNAP_TIME STAT_NAME SECONDS 2021-02-16 13:31:42 PL/SQL 执行经过时间 .303316 2021-02-16 13:31:42 DB CPU 158.935656 2021-02-16 13:31:42 sql 执行经过时间 165.082876 2021-02-16 13:31:42 数据库时间 345.022309 2021-02-16 14:01:42 PL/SQL 执行经过时间 .28558 2021-02-16 14:01:42 sql 执行经过时间 158.518897 2021-02-16 14:01:42 DB CPU 165.750627 2021-02-16 14:01:42 数据库时间 347.531669 2021-02-16 14:31:42 PL/SQL 执行经过时间 .297387 2021-02-16 14:31:42 sql 执行经过时间 190.519756 2021-02-16 14:31:42 DB CPU 209.100002 2021-02-16 14:31:42 数据库时间 443.938258

newtsibble lowerlimitvalue)

约翰

【问题讨论】:

  • 你能用dput分享数据吗
  • 结果很丑,让我想想如何重新格式化
  • 别太在意dput的丑陋,它服务于目的;)

标签: r ggplot2 tidyverse


【解决方案1】:

如果您首先按 STAT_NAME 分组,则下面 filter 行内的 max calc 将找到每个组内的最大 SECONDS(在这种情况下,删除任何 NA)。这样您将获得组的最大值,并且过滤器将包含组最大值 > 500 的任何项目。

tsallstm %>%
  group_by(STAT_NAME) %>%
  filter(max(SECONDS, na.rm = TRUE) > 500) %>%
  ungroup()

【讨论】:

  • 看起来可行!试图决定是否确实需要取消组合。我快到了,感谢您的推动!
猜你喜欢
  • 2022-06-11
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 2016-05-07
相关资源
最近更新 更多