Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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_Math_Data Manipulation - Fatal编程技术网

R 如何在一系列数字中检查集群模式并获得下一个值?

R 如何在一系列数字中检查集群模式并获得下一个值?,r,math,data-manipulation,R,Math,Data Manipulation,给定一组序列 seq1 <- c(3,3,3,7,7,7,4,4) seq2 <- c(17,17,77,77,3) seq3 <- c(5,5,23) seq1这里有一种方法,可以使用基本R中的rle检查除最后一个之外的所有运行长度是否相等,如果TRUE则重复最后一个值,使其具有与其他值相同的模式- rl <- rle(seq1)$lengths # check if all run-lengths, except last, are equal if(all(he

给定一组序列

seq1 <- c(3,3,3,7,7,7,4,4)
seq2 <- c(17,17,77,77,3)
seq3 <- c(5,5,23)

seq1这里有一种方法,可以使用基本R中的
rle
检查除最后一个之外的所有运行长度是否相等,如果
TRUE
则重复最后一个值,使其具有与其他值相同的模式-

rl <- rle(seq1)$lengths

# check if all run-lengths, except last, are equal
if(all(head(rl, -1) == rl[1])) {
  c(seq1, rep(seq1[length(seq1)], diff(range(rl))))
} else {
  # do something else
}


# [1] 3 3 3 7 7 7 4 4 4

rl是
seq3
还是
seq2
如何获得4、3和23?定义模式。图案是否应始终具有相同的大小(在向量内)?
c(1,1,2,2,1,1,3,3)
的下一个值是什么?这里下一个值是最后一个值将此值添加到您的问题@BethanhuishHanks以获得解决方案,但是否有方法首先检查序列输入以查看它是否遵循集群模式?@BethanHuish您必须定义模式是什么?
c(3,3,3,2,2,4,4,4)
a模式吗?在您的帖子中为这些示例添加更多详细信息、示例和预期输出。@Shree我想只需添加一个带有类似于我的注释的if语句,我想就可以了。我正在尝试将其与csv文件上的apply()函数结合使用,该文件包含这些类型的数字模式列表,有没有什么原因使它不起作用并给我这个错误“errorin-FUN(newX[,i],…):unused-argument(newX[,i])”?