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])”?