假設我們有以下資料:
a <- c(0.1,0.2,0,0,0,0,1.2,1.4,0,0,1.4)
b <- c(0,0,0,1.1,0,0,0,0,0.25,0.51,0)
現在我想計算兩個非零數字之間的零,并繼續計算隨后的非零數字。因此,輸出看起來像 a 它將是 (4,2) 的陣列對于 b 它將是 (3,4,1) 的陣列
我嘗試使用一般過濾代碼來計算零,但我無法復制隨后的非零零數字的代碼。
這是我正在處理的降水資料集:
我想計算降水事件之間的天數。也許這會使問題更清楚。
uj5u.com熱心網友回復:
您可以使用游程編碼 ( rle
):
a <- c(0.1,0.2,0,0,0,0,1.2,1.4,0,0,1.4)
b <- c(0,0,0,1.1,0,0,0,0,0.25,0.51,0)
with(unclass(rle(a)), lengths[values == 0])
#> [1] 4 2
with(unclass(rle(b)), lengths[values == 0])
#> [1] 3 4 1
使用reprex v2.0.2創建于 2022-10-26
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520913.html
標籤:r