在 R 中看不到观察的最长时间

Maximum times without seeing an observation in R

我有一个向量,基本上包含 100,000 个条目,由 1 到 6 之间的数字组成(我的意思是,条目一 = 4,条目二 = 2,依此类推)。基本上,包含 1、2、3、4、5 和 6 的向量的 100,000 倍样本。

我想计算没有值的连续条目的最大数量(例如,在这些数字上:1,1,3,4,3,6,6,6 没有的最大次数' t appear 是 5,因为我们有 5 个观察结果在 6 出现之前不是 6),我正在考虑在向量上使用 for 循环进行迭代,计算所需值未出现的次数,但我不确定如何防止它只计算该值出现的次数。这有点像连胜的反面,我不想计算我们连续观察了多少次,而是想计算我们没有观察到多少次。

我基本上一直在思考 for 循环的结构,我有一种直觉,觉得有更简单的方法,有什么想法吗?

为此我们可以使用 rle——它告诉您连续值的数量。我们将在您的问题中使用示例:

x = c(1,1,3,4,3,6,6)
rle(x)
# Run Length Encoding
#   lengths: int [1:5] 2 1 1 1 2
#   values : num [1:5] 1 3 4 3 6

## Use it to solve your problem
rx = rle(x != 6)
# This will tell us the number of consecutive TRUE values (x isn't 6)
# and FALSE values (x is 6)
# We want to find the maximum length where the value is TRUE:
max(rx$lengths[rx$values])
# [1] 5

您应该能够对此进行调整以解决您的问题。如果你有困难,post一个例子。