【发布时间】:2019-02-27 05:07:34
【问题描述】:
我想对数据应用滚动函数来检测值在哪个点大于特定阈值。
library(tidyverse)
df <- tibble(
x = 1:10,
y = c(1, 3, 4, 1, 5, 34, 43, 1, 45, 3)
)
df
#> # A tibble: 10 x 2
#> x y
#> <int> <dbl>
#> 1 1 1
#> 2 2 3
#> 3 3 4
#> 4 4 1
#> 5 5 5
#> 6 6 34
#> 7 7 43
#> 8 8 1
#> 9 9 45
#> 10 10 3
我想要找到接下来 2 个值高于某个阈值(比如 30)的行。这将产生:
tibble(
x = 1:10,
y = c(1, 3, 4, 1, 5, 34, 43, 1, 45, 3),
i = c(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE)
)
#> # A tibble: 10 x 3
#> x y i
#> <int> <dbl> <lgl>
#> 1 1 1 FALSE
#> 2 2 3 FALSE
#> 3 3 4 FALSE
#> 4 4 1 FALSE
#> 5 5 5 FALSE
#> 6 6 34 TRUE
#> 7 7 43 FALSE
#> 8 8 1 FALSE
#> 9 9 45 FALSE
#> 10 10 3 FALSE
我有一个大型数据集(几百万行),因此我正在尝试找到一个有效的解决方案。也许使用data.table?
由reprex package (v0.2.1) 于 2019 年 2 月 26 日创建
【问题讨论】:
标签: r