周期序列是在n个项之后重复自身的序列,例如,以下是周期序列:
1,2,3,1,2,3,1,2,3,...
并且我们将该序列的周期定义为每个子序列中的项数(上面的子序列是1、2、3)。因此,上述序列的周期为3。
在R中,我可以使用以下命令定义上述序列(尽管不是无限):
sequence <- rep(c(1,2,3),n) #n is a predefined variable
因此,如果
n = 50
,sequence
将是序列1、2、3、1、2、3,...,1、2、3,其中每个数字以明显的方式出现了50次。我正在寻找一个函数来计算
sequence
的周期性。伪代码如下:period <- function(sequence){
subsequence <- subsequence(sequence) #identify the subsequence
len.subsequence <- length(subsequence) #calculate its length
return(len.subsequence) #return it
}
我将如何识别子序列?这有点类似于
rep
函数的反转,因此我按顺序传递,并且传递了初始向量的长度。 最佳答案
如果周期始终相同,即序列永不改变,则可以在lag
上使用循环来查看何时发生匹配。
由于存在总体偏见,我还建议您使用seqle
(猜想是谁写的函数:-)),它类似于rle
但可以找到序列。 detect intervals of the consequent integer sequences
我不是唯一以这种方式编辑“rle”的源代码的人。
关于r - 测量数字序列的周期性[R],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12824931/