R语言 - 获得数字的平均步数

时间:2016-03-19 17:35:40

标签: r

我有数字序列(实际上它只是这个序列的一部分。实际上我有超过10万个数字)

  

1 2 3 3 2 3 2 3 2 1 2 3 2 3 2 3 3 2 3 2 3 2 1 3 3 2 3 3 2 3 3 3 2 3 2 3 2 1 3 2 3 3 3 2 3 3 2 3 2 3

我需要计算在此序列中获得1后的平均步数。 例如: 在该序列中,1是第一个数字。现在我计算得到下一个步骤的步数,然后我得到9.接下来的步骤是经过13个步骤,接下来经过15个步骤等等。

现在我必须计算平均步数。 所以我们有(9 + 13 + 15)/ 3 = 12.(3)

我如何用R语言做到这一点?

1 个答案:

答案 0 :(得分:5)

您可以尝试:

mean(diff(which(x == 1)))
## [1] 12.33333

假设:

x <- c(1, 2, 3, 3, 2, 3, 2, 3, 2, 1, 2, 3, 2, 3, 2, 3, 3, 2, 3, 2, 
    3, 2, 1, 3, 3, 2, 3, 3, 2, 3, 3, 3, 2, 3, 2, 3, 2, 1, 3, 2, 3, 
    3, 3, 2, 3, 3, 2, 3, 2, 3)