From 0a5016a6e2333eb2cf04fe2a5527c012bd6b266c Mon Sep 17 00:00:00 2001 From: schw4b Date: Sat, 14 May 2022 18:45:12 +0200 Subject: [PATCH 1/2] KDPI fix for missing values and new lookup table --- R/uskdri.R | 243 ++++++++++++++++++++++++++++------------------------- 1 file changed, 130 insertions(+), 113 deletions(-) diff --git a/R/uskdri.R b/R/uskdri.R index 886493b..89df152 100644 --- a/R/uskdri.R +++ b/R/uskdri.R @@ -131,7 +131,7 @@ uskdri_US = function(age, height, weight, eth, htn, dm, cva, creat, hcv, dcd, sc #' cva = 0, creat = 1.4, hcv = 0, dcd = 0, scaling = 1.250609, units = "US") kdpi = function(age, height, weight, eth, htn, dm, cva, creat, hcv, dcd, scaling = 1, units = "SI") { kdri = uskdri(age, height, weight, eth, htn, dm, cva, creat, hcv, dcd, scaling, units) - kdpi_lookup(kdri, scaling = 1) + kdpi_lookup(kdri) } #' US KDPI (US units) @@ -169,136 +169,153 @@ kdpi = function(age, height, weight, eth, htn, dm, cva, creat, hcv, dcd, scaling #' cva = 0, creat = 1.4, hcv = 0, dcd = 0, scaling = 1.250609) kdpi_US = function(age, height, weight, eth, htn, dm, cva, creat, hcv, dcd, scaling = 1) { kdri = uskdri(age, height, weight, eth, htn, dm, cva, creat, hcv, dcd, scaling, units = "US") - kdpi_lookup(kdri, scaling = 1) + kdpi_lookup(kdri) } #' US KDPI lookup function #' -#' A vectorised function to convert kdri KDRI scores to KDPI percentiles. If the OPTN scaling factor was -#' not used when calculating the KDRI, it can be set here using the optional scaling parameter which -#' uses a default value of 1 (for no scaling). +#' A vectorised function to convert KDRI scores to KDPI percentiles. In order to obtain +#' valid scores the KDRI scores need to be scaled beforehand. #' #' This function requires the dplyr package to be installed. #' #' @param kdri numeric vector of KDRI values -#' @param scaling optional parameter for scaling factor (default is 1) #' #' @return numeric vector of KDPI percentiles #' @export #' #' @examples -#' # if scaling factor was used when calculating KDRI #' kdpi_lookup(1.25) -#' -#' # if scaling factor for 2018 needs to be applied -#' kdpi_lookup(1.25, scaling = 1.2506957544151) -kdpi_lookup = function(kdri, scaling = 1) { +kdpi_lookup = function(kdri) { if(!requireNamespace("dplyr", quietly = TRUE)) { stop("The dplyr package is needed for this function to work. Please install it.", call. = FALSE) } kdpi = dplyr::case_when( - kdri <= 0.49876511772967 ~ 0, - kdri <= 0.56307750275834 ~ 1, - kdri <= 0.58488618864631 ~ 2, - kdri <= 0.59976342091324 ~ 3, - kdri <= 0.61217321834846 ~ 4, - kdri <= 0.62394066704334 ~ 5, - kdri <= 0.63542577053361 ~ 6, - kdri <= 0.6445737715023 ~ 7, - kdri <= 0.65522066955566 ~ 8, - kdri <= 0.66500946855438 ~ 9, - kdri <= 0.67285865074985 ~ 10, - kdri <= 0.68051868467058 ~ 11, - kdri <= 0.68878920374291 ~ 12, - kdri <= 0.69636731947259 ~ 13, - kdri <= 0.70315523051737 ~ 14, - kdri <= 0.71022603532484 ~ 15, - kdri <= 0.71776001984627 ~ 16, - kdri <= 0.72658195089529 ~ 17, - kdri <= 0.73384165685169 ~ 18, - kdri <= 0.74114128784946 ~ 19, - kdri <= 0.74824860245686 ~ 20, - kdri <= 0.7551113931652 ~ 21, - kdri <= 0.76208894834223 ~ 22, - kdri <= 0.76968857037996 ~ 23, - kdri <= 0.77912794810015 ~ 24, - kdri <= 0.7864233644084 ~ 25, - kdri <= 0.79429019469951 ~ 26, - kdri <= 0.80043495925199 ~ 27, - kdri <= 0.80949231453375 ~ 28, - kdri <= 0.81714722369107 ~ 29, - kdri <= 0.82459740969579 ~ 30, - kdri <= 0.83413568333986 ~ 31, - kdri <= 0.84510026657137 ~ 32, - kdri <= 0.8536373705678 ~ 33, - kdri <= 0.86244836373684 ~ 34, - kdri <= 0.87073290711542 ~ 35, - kdri <= 0.87780711172565 ~ 36, - kdri <= 0.88495365728057 ~ 37, - kdri <= 0.89361521923418 ~ 38, - kdri <= 0.90266841208094 ~ 39, - kdri <= 0.91084731254587 ~ 40, - kdri <= 0.9199039652366 ~ 41, - kdri <= 0.92744665590833 ~ 42, - kdri <= 0.93528273970436 ~ 43, - kdri <= 0.94661766515018 ~ 44, - kdri <= 0.95820187283546 ~ 45, - kdri <= 0.96605433397544 ~ 46, - kdri <= 0.97392517565498 ~ 47, - kdri <= 0.9820431801057 ~ 48, - kdri <= 0.99114028067804 ~ 49, - kdri <= 1.0000000000000 ~ 50, - kdri <= 1.00962603508795 ~ 51, - kdri <= 1.0185499518415 ~ 52, - kdri <= 1.02886268206259 ~ 53, - kdri <= 1.0394835465958 ~ 54, - kdri <= 1.04827336061879 ~ 55, - kdri <= 1.05844410040513 ~ 56, - kdri <= 1.06873958906964 ~ 57, - kdri <= 1.07846636550991 ~ 58, - kdri <= 1.09098395494362 ~ 59, - kdri <= 1.10332240959206 ~ 60, - kdri <= 1.11393634618198 ~ 61, - kdri <= 1.1264600314863 ~ 62, - kdri <= 1.13689401974787 ~ 63, - kdri <= 1.14952682364131 ~ 64, - kdri <= 1.16082620815589 ~ 65, - kdri <= 1.172567747438 ~ 66, - kdri <= 1.18304544582233 ~ 67, - kdri <= 1.1959968239922 ~ 68, - kdri <= 1.20691558281891 ~ 69, - kdri <= 1.21964520393117 ~ 70, - kdri <= 1.23141017941636 ~ 71, - kdri <= 1.24438222257714 ~ 72, - kdri <= 1.25983404251641 ~ 73, - kdri <= 1.27501762239354 ~ 74, - kdri <= 1.2904874303634 ~ 75, - kdri <= 1.30438279915696 ~ 76, - kdri <= 1.32210557724578 ~ 77, - kdri <= 1.33862905906667 ~ 78, - kdri <= 1.35425027686849 ~ 79, - kdri <= 1.37148103037223 ~ 80, - kdri <= 1.39244333640203 ~ 81, - kdri <= 1.41295039933911 ~ 82, - kdri <= 1.43347275466868 ~ 83, - kdri <= 1.45649082784051 ~ 84, - kdri <= 1.47831067495385 ~ 85, - kdri <= 1.5014660538092 ~ 86, - kdri <= 1.5300310051455 ~ 87, - kdri <= 1.55612693470058 ~ 88, - kdri <= 1.58573242755821 ~ 89, - kdri <= 1.61830612440207 ~ 90, - kdri <= 1.64828606573425 ~ 91, - kdri <= 1.68394625461656 ~ 92, - kdri <= 1.7213898209904 ~ 93, - kdri <= 1.76828827076567 ~ 94, - kdri <= 1.82797350338431 ~ 95, - kdri <= 1.89480058347067 ~ 96, - kdri <= 1.96598383615514 ~ 97, - kdri <= 2.06845096281863 ~ 98, - kdri <= 2.26132290901436 ~ 99, - kdri <= 4.74323788214012 ~ 100, - TRUE ~ 100) + kdri < 0 ~ NA_real_, + + kdri <= 0.49288618187448 ~ 0, + kdri <= 0.55766759610873 ~ 1, + kdri <= 0.57704916969103 ~ 2, + kdri <= 0.59364308928216 ~ 3, + kdri <= 0.60609593309627 ~ 4, + + kdri <= 0.61821968953949 ~ 5, + kdri <= 0.62983877817678 ~ 6, + kdri <= 0.63920695742794 ~ 7, + kdri <= 0.64902957059053 ~ 8, + kdri <= 0.65809432951739 ~ 9, + + kdri <= 0.66612562506720 ~ 10, + kdri <= 0.67558452491476 ~ 11, + kdri <= 0.68412337829430 ~ 12, + kdri <= 0.69185602594588 ~ 13, + kdri <= 0.69880621985069 ~ 14, + + kdri <= 0.70790554868322 ~ 15, + kdri <= 0.71579819664996 ~ 16, + kdri <= 0.72404263514936 ~ 17, + kdri <= 0.73190408867748 ~ 18, + kdri <= 0.74144299374481 ~ 19, + + kdri <= 0.74970386281724 ~ 20, + kdri <= 0.75737785660771 ~ 21, + kdri <= 0.76631975317226 ~ 22, + kdri <= 0.77361805204334 ~ 23, + kdri <= 0.78264427231080 ~ 24, + + kdri <= 0.79070589237185 ~ 25, + kdri <= 0.79775240427962 ~ 26, + kdri <= 0.80533011892674 ~ 27, + kdri <= 0.81290014488090 ~ 28, + kdri <= 0.82079901878607 ~ 29, + + kdri <= 0.82783534753742 ~ 30, + kdri <= 0.83590776577662 ~ 31, + kdri <= 0.84241964344697 ~ 32, + kdri <= 0.85068701756456 ~ 33, + kdri <= 0.85855116695904 ~ 34, + + kdri <= 0.86674973513388 ~ 35, + kdri <= 0.87531645075402 ~ 36, + kdri <= 0.88387732375932 ~ 37, + kdri <= 0.89239448179147 ~ 38, + kdri <= 0.90094830333877 ~ 39, + + kdri <= 0.91013985906309 ~ 40, + kdri <= 0.91862526835859 ~ 41, + kdri <= 0.92683752357503 ~ 42, + kdri <= 0.93686414179677 ~ 43, + kdri <= 0.94645959319719 ~ 44, + + kdri <= 0.95388992193620 ~ 45, + kdri <= 0.96357341294590 ~ 46, + kdri <= 0.97223571380888 ~ 47, + kdri <= 0.98143155774226 ~ 48, + kdri <= 0.99161832376591 ~ 49, + + kdri <= 1.00000000000000 ~ 50, + kdri <= 1.01019461458336 ~ 51, + kdri <= 1.02114342056441 ~ 52, + kdri <= 1.03235541277888 ~ 53, + kdri <= 1.04108037909272 ~ 54, + + kdri <= 1.05134994466249 ~ 55, + kdri <= 1.06124526827265 ~ 56, + kdri <= 1.07289757239163 ~ 57, + kdri <= 1.08168823370293 ~ 58, + kdri <= 1.09378373320070 ~ 59, + + kdri <= 1.10488692564162 ~ 60, + kdri <= 1.11276621409158 ~ 61, + kdri <= 1.12617056845307 ~ 62, + kdri <= 1.13787330701880 ~ 63, + kdri <= 1.15032326169124 ~ 64, + + kdri <= 1.16220957579890 ~ 65, + kdri <= 1.17507855419745 ~ 66, + kdri <= 1.18902851528348 ~ 67, + kdri <= 1.20326536655901 ~ 68, + kdri <= 1.21549694329305 ~ 69, + + kdri <= 1.22745509802558 ~ 70, + kdri <= 1.24150331981455 ~ 71, + kdri <= 1.25477089231939 ~ 72, + kdri <= 1.26711542725798 ~ 73, + kdri <= 1.28049023409929 ~ 74, + + kdri <= 1.29521020345262 ~ 75, + kdri <= 1.30795519779436 ~ 76, + kdri <= 1.32331056421167 ~ 77, + kdri <= 1.33954901319506 ~ 78, + kdri <= 1.35417308679937 ~ 79, + + kdri <= 1.37299460853031 ~ 80, + kdri <= 1.39325536754786 ~ 81, + kdri <= 1.41385921859655 ~ 82, + kdri <= 1.43186673205109 ~ 83, + kdri <= 1.44779686858670 ~ 84, + + kdri <= 1.46753663431589 ~ 85, + kdri <= 1.48887827371017 ~ 86, + kdri <= 1.51131328801805 ~ 87, + kdri <= 1.53637078180307 ~ 88, + kdri <= 1.56599436621390 ~ 89, + + kdri <= 1.59388080454631 ~ 90, + kdri <= 1.62599998190581 ~ 91, + kdri <= 1.66067309649100 ~ 92, + kdri <= 1.69776893848280 ~ 93, + kdri <= 1.74595729786717 ~ 94, + + kdri <= 1.80117569936833 ~ 95, + kdri <= 1.86909994095062 ~ 96, + kdri <= 1.94997197367416 ~ 97, + kdri <= 2.06166972375206 ~ 98, + kdri <= 2.23606163552925 ~ 99, + + kdri <= 3.32515071199901 ~ 100, + kdri <= 99 ~ 100, + TRUE ~ NA_real_) kdpi } From 58d8f965167f21b9e9288815fafb0ec993ab2db3 Mon Sep 17 00:00:00 2001 From: schw4b Date: Wed, 1 Jun 2022 19:31:12 +0200 Subject: [PATCH 2/2] update mapping table from March 2022 --- R/uskdri.R | 202 ++++++++++++++++++++++++++--------------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/R/uskdri.R b/R/uskdri.R index 89df152..5916038 100644 --- a/R/uskdri.R +++ b/R/uskdri.R @@ -194,128 +194,128 @@ kdpi_lookup = function(kdri) { kdpi = dplyr::case_when( kdri < 0 ~ NA_real_, - kdri <= 0.49288618187448 ~ 0, - kdri <= 0.55766759610873 ~ 1, - kdri <= 0.57704916969103 ~ 2, - kdri <= 0.59364308928216 ~ 3, - kdri <= 0.60609593309627 ~ 4, + kdri <= 0.46142857688301 ~ 0, + kdri <= 0.54197901283437 ~ 1, + kdri <= 0.56160304740180 ~ 2, + kdri <= 0.57764949747539 ~ 3, + kdri <= 0.59201222143224 ~ 4, - kdri <= 0.61821968953949 ~ 5, - kdri <= 0.62983877817678 ~ 6, - kdri <= 0.63920695742794 ~ 7, - kdri <= 0.64902957059053 ~ 8, - kdri <= 0.65809432951739 ~ 9, + kdri <= 0.60353092319351 ~ 5, + kdri <= 0.61457764696553 ~ 6, + kdri <= 0.62524856769420 ~ 7, + kdri <= 0.63558591800552 ~ 8, + kdri <= 0.64587583471311 ~ 9, - kdri <= 0.66612562506720 ~ 10, - kdri <= 0.67558452491476 ~ 11, - kdri <= 0.68412337829430 ~ 12, - kdri <= 0.69185602594588 ~ 13, - kdri <= 0.69880621985069 ~ 14, + kdri <= 0.65501967868782 ~ 10, + kdri <= 0.66369803467456 ~ 11, + kdri <= 0.67393069484252 ~ 12, + kdri <= 0.68234628550006 ~ 13, + kdri <= 0.68996942083730 ~ 14, - kdri <= 0.70790554868322 ~ 15, - kdri <= 0.71579819664996 ~ 16, - kdri <= 0.72404263514936 ~ 17, - kdri <= 0.73190408867748 ~ 18, - kdri <= 0.74144299374481 ~ 19, + kdri <= 0.69819838318796 ~ 15, + kdri <= 0.70647462075572 ~ 16, + kdri <= 0.71488899506376 ~ 17, + kdri <= 0.72338622620749 ~ 18, + kdri <= 0.73122212560016 ~ 19, - kdri <= 0.74970386281724 ~ 20, - kdri <= 0.75737785660771 ~ 21, - kdri <= 0.76631975317226 ~ 22, - kdri <= 0.77361805204334 ~ 23, - kdri <= 0.78264427231080 ~ 24, + kdri <= 0.73948742626363 ~ 20, + kdri <= 0.74767416814119 ~ 21, + kdri <= 0.75489183869684 ~ 22, + kdri <= 0.76328988492547 ~ 23, + kdri <= 0.77263540810356 ~ 24, - kdri <= 0.79070589237185 ~ 25, - kdri <= 0.79775240427962 ~ 26, - kdri <= 0.80533011892674 ~ 27, - kdri <= 0.81290014488090 ~ 28, - kdri <= 0.82079901878607 ~ 29, + kdri <= 0.78104071392144 ~ 25, + kdri <= 0.78961641663597 ~ 26, + kdri <= 0.79763195276282 ~ 27, + kdri <= 0.80629306366570 ~ 28, + kdri <= 0.81315950139425 ~ 29, - kdri <= 0.82783534753742 ~ 30, - kdri <= 0.83590776577662 ~ 31, - kdri <= 0.84241964344697 ~ 32, - kdri <= 0.85068701756456 ~ 33, - kdri <= 0.85855116695904 ~ 34, + kdri <= 0.82133189024934 ~ 30, + kdri <= 0.82993557639931 ~ 31, + kdri <= 0.83833021902837 ~ 32, + kdri <= 0.84644064330782 ~ 33, + kdri <= 0.85517598569799 ~ 34, - kdri <= 0.86674973513388 ~ 35, - kdri <= 0.87531645075402 ~ 36, - kdri <= 0.88387732375932 ~ 37, - kdri <= 0.89239448179147 ~ 38, - kdri <= 0.90094830333877 ~ 39, + kdri <= 0.86354609606526 ~ 35, + kdri <= 0.87190221510694 ~ 36, + kdri <= 0.88063855849677 ~ 37, + kdri <= 0.88865695084855 ~ 38, + kdri <= 0.89695104031643 ~ 39, - kdri <= 0.91013985906309 ~ 40, - kdri <= 0.91862526835859 ~ 41, - kdri <= 0.92683752357503 ~ 42, - kdri <= 0.93686414179677 ~ 43, - kdri <= 0.94645959319719 ~ 44, + kdri <= 0.90553622222640 ~ 40, + kdri <= 0.91404086359403 ~ 41, + kdri <= 0.92315954924259 ~ 42, + kdri <= 0.93233041928184 ~ 43, + kdri <= 0.94219294550761 ~ 44, - kdri <= 0.95388992193620 ~ 45, - kdri <= 0.96357341294590 ~ 46, - kdri <= 0.97223571380888 ~ 47, - kdri <= 0.98143155774226 ~ 48, - kdri <= 0.99161832376591 ~ 49, + kdri <= 0.95174513059252 ~ 45, + kdri <= 0.96312121772671 ~ 46, + kdri <= 0.97205975507178 ~ 47, + kdri <= 0.98215317510147 ~ 48, + kdri <= 0.99183352829341 ~ 49, kdri <= 1.00000000000000 ~ 50, - kdri <= 1.01019461458336 ~ 51, - kdri <= 1.02114342056441 ~ 52, - kdri <= 1.03235541277888 ~ 53, - kdri <= 1.04108037909272 ~ 54, + kdri <= 1.01017417074092 ~ 51, + kdri <= 1.01835848244924 ~ 52, + kdri <= 1.02684438950822 ~ 53, + kdri <= 1.03579785070930 ~ 54, - kdri <= 1.05134994466249 ~ 55, - kdri <= 1.06124526827265 ~ 56, - kdri <= 1.07289757239163 ~ 57, - kdri <= 1.08168823370293 ~ 58, - kdri <= 1.09378373320070 ~ 59, + kdri <= 1.04562207982550 ~ 55, + kdri <= 1.05722970377490 ~ 56, + kdri <= 1.06708646003775 ~ 57, + kdri <= 1.07634603079629 ~ 58, + kdri <= 1.08575543697971 ~ 59, - kdri <= 1.10488692564162 ~ 60, - kdri <= 1.11276621409158 ~ 61, - kdri <= 1.12617056845307 ~ 62, - kdri <= 1.13787330701880 ~ 63, - kdri <= 1.15032326169124 ~ 64, + kdri <= 1.09710182684712 ~ 60, + kdri <= 1.10693175142868 ~ 61, + kdri <= 1.11742172465403 ~ 62, + kdri <= 1.12918033244636 ~ 63, + kdri <= 1.14105126527764 ~ 64, - kdri <= 1.16220957579890 ~ 65, - kdri <= 1.17507855419745 ~ 66, - kdri <= 1.18902851528348 ~ 67, - kdri <= 1.20326536655901 ~ 68, - kdri <= 1.21549694329305 ~ 69, + kdri <= 1.15331684032151 ~ 65, + kdri <= 1.16542473503044 ~ 66, + kdri <= 1.17696136175085 ~ 67, + kdri <= 1.18927324253637 ~ 68, + kdri <= 1.20164565923095 ~ 69, - kdri <= 1.22745509802558 ~ 70, - kdri <= 1.24150331981455 ~ 71, - kdri <= 1.25477089231939 ~ 72, - kdri <= 1.26711542725798 ~ 73, - kdri <= 1.28049023409929 ~ 74, + kdri <= 1.21541307690033 ~ 70, + kdri <= 1.22911205232018 ~ 71, + kdri <= 1.24245840305292 ~ 72, + kdri <= 1.25730683392563 ~ 73, + kdri <= 1.27215765519370 ~ 74, - kdri <= 1.29521020345262 ~ 75, - kdri <= 1.30795519779436 ~ 76, - kdri <= 1.32331056421167 ~ 77, - kdri <= 1.33954901319506 ~ 78, - kdri <= 1.35417308679937 ~ 79, + kdri <= 1.28707474004391 ~ 75, + kdri <= 1.30379077237733 ~ 76, + kdri <= 1.32043073795346 ~ 77, + kdri <= 1.33470727747430 ~ 78, + kdri <= 1.35223394649512 ~ 79, - kdri <= 1.37299460853031 ~ 80, - kdri <= 1.39325536754786 ~ 81, - kdri <= 1.41385921859655 ~ 82, - kdri <= 1.43186673205109 ~ 83, - kdri <= 1.44779686858670 ~ 84, + kdri <= 1.36711461717176 ~ 80, + kdri <= 1.38613042767243 ~ 81, + kdri <= 1.40388472846480 ~ 82, + kdri <= 1.42405153123492 ~ 83, + kdri <= 1.44236712388566 ~ 84, - kdri <= 1.46753663431589 ~ 85, - kdri <= 1.48887827371017 ~ 86, - kdri <= 1.51131328801805 ~ 87, - kdri <= 1.53637078180307 ~ 88, - kdri <= 1.56599436621390 ~ 89, + kdri <= 1.46037025078765 ~ 85, + kdri <= 1.48228201160165 ~ 86, + kdri <= 1.50315404920549 ~ 87, + kdri <= 1.53116364711516 ~ 88, + kdri <= 1.55977565496533 ~ 89, - kdri <= 1.59388080454631 ~ 90, - kdri <= 1.62599998190581 ~ 91, - kdri <= 1.66067309649100 ~ 92, - kdri <= 1.69776893848280 ~ 93, - kdri <= 1.74595729786717 ~ 94, + kdri <= 1.58862998476342 ~ 90, + kdri <= 1.62205197669837 ~ 91, + kdri <= 1.65260362699008 ~ 92, + kdri <= 1.70084638382016 ~ 93, + kdri <= 1.75251517684434 ~ 94, - kdri <= 1.80117569936833 ~ 95, - kdri <= 1.86909994095062 ~ 96, - kdri <= 1.94997197367416 ~ 97, - kdri <= 2.06166972375206 ~ 98, - kdri <= 2.23606163552925 ~ 99, + kdri <= 1.80242900060437 ~ 95, + kdri <= 1.85527326893612 ~ 96, + kdri <= 1.93490145976700 ~ 97, + kdri <= 2.03614843248107 ~ 98, + kdri <= 2.21047627199221 ~ 99, - kdri <= 3.32515071199901 ~ 100, - kdri <= 99 ~ 100, + kdri <= 3.18031420972338 ~ 100, + kdri <= 20 ~ 100, TRUE ~ NA_real_) kdpi }