没有在R中观察的最大时间

问题描述 投票:1回答:1

我有一个基本上有100,000个条目的向量,包括1到6的数字(我的意思是,条目1 = 4,条目2 = 2,依此类推)。基本上,含有1,2,3,4,5和6的载体的100,000倍样品。

我想计算没有值的连续条目的最大数量(例如,在这些数字上:1,1,3,4,3,6,6,6未出现的最大次数是5,因为我们有5个观察结果在6出现之前不是6,并且我正在考虑在矢量上使用for循环迭代计算未出现期望值的时间,但我不确定如何保持它只计算该值出现的次数。它与条纹相反,而不是计算连续观察的次数,我想计算我们没有观察多少次。

我基本上不考虑for循环的结构,我有这种直觉,觉得有一个更简单的方法,任何想法?

r for-loop counting
1个回答
4
投票

我们可以使用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

您应该能够调整它来解决您的问题。如果您遇到问题,请发布示例。

© www.soinside.com 2019 - 2024. All rights reserved.