簡體   English   中英

如何在 R 中對重復變量進行分組和 label

[英]How to group and label a repeating variable in R

我有一個數據框,它有 2 個變量,時間和相位,其中相位是呼吸的相位。 我需要能夠組合“insp”和“exp”來創建呼吸數。 每個階段的長度沒有設定,並且可能因呼吸而異。 每個 insp 和 exp 的長度不相等。 實際的 df 有 > 30,000 行,所以我不能手動執行此操作。

一個例子是:

tibble(time = c(1:35), 
       phase = c(rep("insp", each = 5), 
                 rep("exp",  each = 10), 
                 rep("insp", each = 8), 
                 rep("exp",  each = 12)))

但我希望它看起來像這樣......

期望的結果

提前謝謝了

您可以使用rle

df$breath_num <- paste0('b', with(rle(df$phase == 'insp'), 
                        rep(cumsum(values), lengths)))

這是另一個帶有rle的版本

df$breath_num <- with(rle(df$phase), paste0("b", rep(ceiling(seq_along(values) / 2), lengths)))

暫無
暫無

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

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