试图找到如何在R中干净地计算连续向量行的数量,使第一次向量条目<= c_1
直到第一次向量条目>= c_2
时间,c_1 < c_2
。我还想获得一个索引,其中这些条目开始(或停止)满足所述条件。
例如
v1 <- c(1,2,3,4,5,4,3,NA, 2,1)
如果c_1=2
和c_2=3
,则3个连续条目(前2个)满足条件,接下来的4个条目不满足,NA被丢弃,最后两个条目满足条件同样。因此,满足条件的连续条目的计数是3,2,连续条目开始的索引是1和9.
答案 0 :(得分: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
}