[英]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.