簡體   English   中英

如何通過觀察 R 來計算連續值組

[英]How to count group of consecutive values by observation in R

我只是想計算 R 中連續零組的數量。 “TotalObsCount”是所需的 output。 我知道我使用下面的代碼走在正確的軌道上,但我似乎無法正確調整它。 示例 Dataframe:

df <- data.frame(col1 = c(0, 0, 1, 1, 1, 0, 0, 0, 0),
                 col2 = c(0, 0, 0, 0, 0, 1, 0, 0, 0),
                 col3 = c(0, 1, 0, 0, 0, 1, 0, 0, 0),
                 col4 = c(1, 0, 0, 1, 0, 0, 1, 0, 0),
                 col5 = c(0, 0, 1, 0, 1, 0, 0, 1, 1))

TotalObsCount <- c(1, 2, 1, 1, 1, 1, 1, 1, 1)

代碼示例

    most_consecutive_val = function(x, val = 0) {with(rle(x), if(all(values != val)) 0 else max(lengths[values == val]))}
    apply(df[-1], MARGIN = 1, most_consecutive_val)

我想你正在尋找

apply(df, 1, function(x) length(which(rle(x)$values == "0" & rle(x)$lengths > 1)))
#> [1] 1 2 1 1 1 1 1 1 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM