Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 找出不同数字的重复序列_R - Fatal编程技术网

R 找出不同数字的重复序列

R 找出不同数字的重复序列,r,R,我有一个数据源,它以未知的间隔重复值,为了使事情更复杂,重复数据的次数可能不是整数。下面是一个人为的例子: set.seed(1) Values <- sample(1:10,10,replace=T) Values [1] 3 4 6 10 3 9 10 7 7 1 CombinedValues <- c(Values,Values,Values[1:5]) [1] 3 4 6 10 3 9 10 7 7 1 3 4 6 10 3 9

我有一个数据源,它以未知的间隔重复值,为了使事情更复杂,重复数据的次数可能不是整数。下面是一个人为的例子:

set.seed(1)
Values <- sample(1:10,10,replace=T)
Values
 [1]  3  4  6 10  3  9 10  7  7  1

CombinedValues <- c(Values,Values,Values[1:5])
 [1]  3  4  6 10  3  9 10  7  7  1  3  4  6 10  3  9 10  7  7  1  3  4  6 10  3
set.seed(1)
价值观

希望这有帮助。

我找到的解决方案是使用
zoo
软件包中的
rollapply
。我假设模式至少有一定的长度,并且获得假阳性匹配的概率很低

which(rollapply(CombinedValues, 4, FUN=function(x) all(x == Values[1:4])))

在这种情况下,一行获得4个匹配项的概率没有那么低。但是,在数据中,当我可以将4增加到1000时,这对于快速解决方案非常有效。

请在提供随机数时调用
set.seed
。另外,预期的输出是什么?2?编辑为具有种子和预期输出。如果“数据重复的次数可能不是整数”,这是否意味着在
12345678901
中,模式
123456790
重复1.1次?这对我来说有点模糊。。另外,数组是否只包含重复序列,或者是否还可以包含“垃圾”?请提供一些输入输出的例子。它只包含重复的序列,我同意第一部分是模糊的,让我想想,看看我是否可以澄清。谢谢,这非常好。我会接受你的回答,并添加我自己的黑客解决方案作为另一个。
[1]  3  4  6 10  3  9 10  7  7  1
which(rollapply(CombinedValues, 4, FUN=function(x) all(x == Values[1:4])))