2016-03-08 94 views
0

试图找到如何干净地R中计数的连续向量的行的数量的连续的行,使得矢量条目<= c_1首次直到矢量条目>= c_2首次,其中c_1 < c_2 。我也想得到一个索引,这些条目开始(或停止)满足规定的条件。计数和索引满足条件

例如

v1 <- c(1,2,3,4,5,4,3,NA, 2,1) 

如果c_1=2c_2=3,然后,连续3项(第一2)满足条件,下四个条目不这样做,一个NA被丢弃,并且最后两个条目满足条件也是如此。因此,我的满足条件的连续条目数是3,2和地方连续的条目开始的索引是1和9

回答

0

这里的,也许不是最有效的解决办法:

i<-1;dur_d<-NULL;index_w<-NULL 
while(i < length(v1)){ 
    k<-0 
    if(v1[i]<= 2 & is.na(v1[i])==F){ 
    count<-1;k<-1;index_w<-rbind(index_w,i) 
    while(v1[i+k]<3 & is.na(v1[i+k])==F){ 
     count<-count+1;k=k+1} 
    dur_d<-rbind(dur_d,count); 
    } 
    i<-i+k+1 
}