R 寻找具有最大长度的条件子向量
我有一个二进制向量R 寻找具有最大长度的条件子向量,r,vector,count,dplyr,R,Vector,Count,Dplyr,我有一个二进制向量 y <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
y <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0)
y可能是更好的方法,这实际上只是评估循环中的所有可能性:
p1 <- sum(y)/length(y)
mlth <- 0
ii <- 0
jj <- 0
for (i in 1:length(y)){
if(y[i] == 1){
for (j in i:length(y)){
if(sum(y[i:j])/length(y[i:j]) > p1 && j - i + 1 >= mlth && j - i + 1 < length(y) ){
mlth <- j - i + 1
ii <- i
jj <- j
}
}
}
}
ii # start position
jj # end position
y[ii:jj] #the vector
p1这不总是完整向量吗?它是最大长度,等于p1亲爱的克里斯,它并不总是全向量,看看你是否把y取对,但是c(1,0,0,0,0,0,0,1,1,1,1)
比c(1,1,1,1)
长,并且>=p1,所以这两个条件都是真的,不是吗?实际上,从技术上讲,如果第一个数字是一,它只是整个向量。否则它会变得更有趣是的,实际上我必须说z是正确的子向量,因为全向量是一个明显的例子。亲爱的克里斯,这确实很有趣。当应用于y@Pankaj对不起,但是c(1,1,1,1)
根据您给出的条件是错误的。你想做什么有更大的图景吗?我想,我的英语不是很好。很抱歉给您带来不便。我刚刚编辑了这篇文章。