我有数据,我想应用滚动函数来检测哪个点的值大于特定阈值。
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包(v0.2.1)在2019-02-26创建
< code>data.table来自@G .格罗滕迪克的tidyverse版本:
dt <- as.data.table(df)
thresh <- 30
dt[, i := y > thresh & shift(y, -1L, fill = FALSE) > thresh][]
x y i
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
i
的较短表达式归功于@Henrik。我需要更新data.table
才能使用它(旧版本不接受n
参数的负值)
1)使用< code>rollapply滚动每个连续的线对,检查它们是否都高于阈值:
library(dplyr)
library(zoo)
df %>% mutate(i = rollapply(y > 30, 2, all, align = "left", fill = 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
2)另一种方法是使用领导
:
df %>% mutate(i = y > 30 & lead(y) > 30)
我需要找到我的数据连续几天达到阈值的位置。我正在寻找超过阈值的4个连续观察值。我想返回符合这些标准的系列的第一个观察值的位置。 下面是一个数据集示例: 我想要平均符合标准的日期(平均 在这种情况下,我可以将第一种情况下的< code>TRUE作为答案,但如果第二种、第三种或第四种情况不是< code>TRUE,这将不起作用 我需要条件为的第一个日期: 以及该系列中第一个观察的位置: 我已经找到了相
我已经准备了一个实现altbeacon库的服务,相关部分如下所示: 我从中看到信标并获得RSSI值的回调如下所示: 我有什么问题?运行该应用程序时,我注意到在didRangeBeaconsInRegion,我经常看不到所有的信标。 如何通过始终能够检测到所有信标来提高扫描频率? 使用的altbeacon版本: Android版本:9 谢谢
我有以下R数据框架: …还有更多的行! 我想得到我有值的行数。 例如: 多少行显示值 列类型S.A和S.B相互排斥,因此永远不会选择Loc2、Loc3和Loc4,因为这些都显示值 我减少了列的数量,因此可以为进一步的选择手动预定义列索引(或名称),但是,我不知道如何处理来选择显示超过某个阈值的值的行,同时还对可能出现这些值的列添加约束。 欢迎任何建议! 干杯:)
我被困在一个问题上,希望得到一些指导。我们希望生成一个报告,计算产品的连续日期(从用户提供的日期向后看)。数据集如下: 因此,我们想得出一份报告,该报告在2021年3月2日提供的日期如下所示: 尽管我正在努力编写查询,但我甚至不知道该怎么称呼它,因为我需要一个特定阈值上的连续值计数。我可以计算阈值以上的值,但不确定如何添加“连续数周”逻辑。
当我查看注册表仪表板时,当结束时,我会看到以下警告消息: 当我查看代码时,测试始终为true 为什么是默认配置,它似乎怪异,因为它不断地产生一个警告! 如果有谁能给我一个解释。我想我错过了什么…
问题内容: 我已经开始开发微服务,尽管我已经进行了一段时间的研究,同时阅读了Spring的文档和Netflix的文档。 我已经开始在Github上进行一个简单的项目。它基本上是一个Eureka服务器(Archimedes)和三个Eureka客户端微服务(一个公共API和两个私有)。查看github的自述文件以获取详细描述。 关键是,当一切都运行时,我希望如果其中一个私有微服务被杀死,Eureka服