gpt4 book ai didi

r - 如何跳过 R 'for' 循环中的增量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:10 25 4
gpt4 key购买 nike

我需要在数值向量中找到大于 0 的值段,其中每个区域内至少有 10 个成员。我不想检查每个位置,因为这会非常耗时(向量超过 1000 万)。

这是我正在尝试做的事情(非常初步,因为我不知道如何跳过 for 循环中的增量):

1. Check if x[i] (start position) is positive. 
a) if positive, check to see if x[i+10] (end position) is positive (since we want at least length 10 of positive integers)
* if positive, check every position in between to see if positive
* if negative, move to x[i+11], skip positions (e.g. new start position is x[i+12]) in between start & end positions since we would not get >10 members if negative end position is included.


x <- rnorm(50, mean=0, sd=4)
for(i in 1:length(x)){
if(x[i]>0){ # IF START POSITION IS POSITIVE
flag=1
print(paste0(i, ": start greater than 1"))
if(x[i+10]>0){ # IF END POSITION POSITIVE, THEN CHECK ALL POSITIONS IN BETWEEN
for(j in i+1:i+9){
if(x[j]>0){ # IF POSITION IS POSITIVE, CHECK NEXT POSITION IF POSITIVE
print(paste0(j, ": for j1"))
}else{ # IF POSITION IS NEGATIVE, THEN SKIP CHECKING & SET NEW START POSITION
print(paste0(j, ": for j2"))
i <- i+11
break;
}
}
}else{ # IF END POSITION IS NOT POSITIVE, START CHECK ONE POSITION AFTER END POSITION
i <- i+11
}
}
}

我遇到的问题是,即使我手动递增 i,for 循环 i 值也会掩盖新的设置值。感谢任何见解。

最佳答案

我不知道这种方法是否和 Curt F 的方法一样有效,但是怎么样

runs <- rle(x>0) 

然后使用 runs$lengths>10 & runs$values ==TRUE 定义的区域?

关于r - 如何跳过 R 'for' 循环中的增量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28284946/

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