如果患者進行 1 次測量到 5 次測量,我很難理解如何減去血壓資料。比如我的資料
| ID | 日期1 | 價值1 | 日期2 | 價值2 | 日期3 | 價值3 | 日期4 | 價值4 | 日期5 | 價值5 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2022 年 1 月 1 日 | 160 | 2022 年 1 月 2 日 | 161 | 2022 年 1 月 4 日 | 159 | 2022 年 1 月 5 日 | 159 | 2022 年 1 月 6 日 | 130 |
| 2 | 2022 年 8 月 2 日 | 130 | 2022 年 1 月 7 日 | 120 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 |
| 3 | 2022 年 1 月 4 日 | 112 | 29/09/2022 | 161 | 2022 年 10 月 10 日 | 159 | 不適用 | 不適用 | 不適用 | 不適用 |
| 4 | 2022 年 1 月 10 日 | 182 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 |
因此,有些患者將獲得全部 5 次測量值(例如 ID 1),而有些患者只有 1 次測量值(例如 ID 4)。
我想創建一個從最新值減去最早值的新變數。如果患者只有 1 個測量值,則新變數將為 NA。比如像這樣。
| ID | 日期1 | 價值1 | 日期2 | 價值2 | 日期3 | 價值3 | 日期4 | 價值4 | 日期5 | 價值5 | 新變數 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2022 年 1 月 1 日 | 160 | 2022 年 1 月 2 日 | 161 | 2022 年 1 月 4 日 | 159 | 2022 年 1 月 5 日 | 159 | 2022 年 1 月 6 日 | 130 | -30 |
| 2 | 2022 年 8 月 2 日 | 130 | 2022 年 1 月 7 日 | 120 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | -10 |
| 3 | 2022 年 1 月 4 日 | 112 | 29/09/2022 | 161 | 2022 年 10 月 10 日 | 159 | 不適用 | 不適用 | 不適用 | 不適用 | 47 |
| 4 | 2022 年 1 月 10 日 | 182 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 | 不適用 |
我為此使用 R Studio。我將不勝感激任何編碼幫助來實作這一目標!
uj5u.com熱心網友回復:
假設第一個值始終位于 Value1 中并且日期排序正確,則dplyr包使其直截了當。
用于coalesce查找第一個非缺失值 2-5(以相反的順序),并從中減去值 1。
library(dplyr)
mutate(df, NewVariable = coalesce(Value5, Value4, Value3, Value2) - Value1)
#> # A tibble: 4 × 12
#> ID Date1 Value1 Date2 Value2 Date3 Value3 Date4 Value4 Date5 Value5 NewVariable
#> <dbl> <chr> <dbl> <chr> <dbl> <chr> <dbl> <chr> <dbl> <chr> <dbl> <dbl>
#> 1 1 01/01/2022 160 01/02/2022 161 01/04/2022 159 01/05/2022 159 01/06/2022 130 -30
#> 2 2 08/02/2022 130 01/07/2022 120 <NA> NA <NA> NA <NA> NA -10
#> 3 3 01/04/2022 112 29/09/2022 161 10/10/2022 159 <NA> NA <NA> NA 47
#> 4 4 01/10/2022 182 <NA> NA <NA> NA <NA> NA <NA> NA NA
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/513090.html
標籤:r数据框日期dplyr
