我有一個從時間序列派生的布爾向量。它基本如下所示:c(true,false,true,true,false,false,true,true ...)。在r中計算真/極限週期數
我想計算向量爲真的週期。例如:對於像這樣的向量:c(true,true,false,true),它將是2(開始時爲1個真實週期,結束時爲1個)。
該向量在開始時可以包含NAs。
我認爲是這樣的:
aaa <- c(NA,F,T,T,T,F)
for(j in 1:(length(aaa)-1)){
if(aaa[j]!=aaa[j+1]){
# add a counter that returns [1]
}
}
================================= ================
編輯:這對我來說工作得很好:
data.frame("#"=unlist(rle(aaa)[1]),"length"=unlist(rle(aaa)[2]))
你期望c(真,不適用,真)給你什麼?您的查詢可能使用運行長度編碼的答案請參閱'?r' – Miff
請編輯帖子以包含您的評論,並且還包括虛擬代碼以突出顯示1)輸入矢量2)輸出矢量3)您到目前爲止嘗試過什麼。請看看[如何發佈一個可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – OdeToMyFiddle
@Miff:c(TRUE,NA ,TRUE)應該返回2 – enroute