如何使用R减去使用最新和最早日期的数据值(值在另一列中)



如果患者有1到5次测量,我很难理解如何减去血压数据。例如,我的数据

>值2日期3值3><1th>值4>日期5<2th>值5<2022年2月1日>2022年5月1日NA<2022年9月29日><159>NA
ID 日期1 日期2日期4
1 2022年1月1日 160161159
2022年2月8日 130 2020年7月1日 120 NA
3 2022年4月1日 112161
4 2022年10月1日 182 NA NA

假设第一个值始终位于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

相关内容

  • 没有找到相关文章

最新更新