Cos*_*Cos 4 r range interval-intersection
我有两个逻辑向量,它们看起来像这样:
x = c(0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0)
y = c(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0)
Run Code Online (Sandbox Code Playgroud)
我想计算连续值范围之间的交集。这意味着连续值(1 秒)作为一个范围处理。所以在上面的例子中,每个向量包含一个 1 的范围,并且这些范围只相交一次。
是否有任何用于范围交叉的 R 包可以在这里提供帮助?
我认为这应该有效(调用您的逻辑向量x
和y
):
sum(rle(x & y)$values)
Run Code Online (Sandbox Code Playgroud)
几个例子:
x = c(0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0)
y = c(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0)
sum(rle(x & y)$values)
# [1] 1
x = c(1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0)
y = c(0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0)
sum(rle(x & y)$values)
# [1] 2
x = c(1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0)
y = c(0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0)
sum(rle(x & y)$values)
# [1] 3
Run Code Online (Sandbox Code Playgroud)
作为解释,x & y
给出每个元素级别的交叉点,rle
折叠相邻交叉点的运行并sum
计数。