gpt4 book ai didi

r - 如何检查向量是否包含 n 个连续数字

转载 作者:行者123 更新时间:2023-12-03 10:22:18 26 4
gpt4 key购买 nike

假设我的向量数包含 c(1,2,3,5,7,8),我想找出它是否包含 3 个连续的数,在本例中为 1,2,3。

numbers = c(1,2,3,5,7,8)
difference = diff(numbers) //The difference output would be 1,1,2,2,1

为了验证我的数字向量中是否有 3 个连续的整数,我尝试了以下方法,但没有什么返回。
rep(1,2)%in%difference 

上面的代码在这种情况下有效,但如果我的差异向量 = (1,2,2,2,1),即使“1”不连续,它仍然会返回 TRUE。

最佳答案

使用 diffrle ,这样的事情应该工作:

result <- rle(diff(numbers))
any(result$lengths>=2 & result$values==1)
# [1] TRUE

为了回应下面的评论,我之前的回答专门只测试 length==3 的运行。不包括更长的长度。更改 ==>=解决了这个问题。它也适用于涉及负数的运行:
> numbers4 <- c(-2, -1, 0, 5, 7, 8)
> result <- rle(diff(numbers4))
> any(result$lengths>=2 & result$values==1)
[1] TRUE

关于r - 如何检查向量是否包含 n 个连续数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16118050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com