2016-03-08 129 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 
}