Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
243 changes: 130 additions & 113 deletions R/uskdri.R
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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.46142857688301 ~ 0,
kdri <= 0.54197901283437 ~ 1,
kdri <= 0.56160304740180 ~ 2,
kdri <= 0.57764949747539 ~ 3,
kdri <= 0.59201222143224 ~ 4,

kdri <= 0.60353092319351 ~ 5,
kdri <= 0.61457764696553 ~ 6,
kdri <= 0.62524856769420 ~ 7,
kdri <= 0.63558591800552 ~ 8,
kdri <= 0.64587583471311 ~ 9,

kdri <= 0.65501967868782 ~ 10,
kdri <= 0.66369803467456 ~ 11,
kdri <= 0.67393069484252 ~ 12,
kdri <= 0.68234628550006 ~ 13,
kdri <= 0.68996942083730 ~ 14,

kdri <= 0.69819838318796 ~ 15,
kdri <= 0.70647462075572 ~ 16,
kdri <= 0.71488899506376 ~ 17,
kdri <= 0.72338622620749 ~ 18,
kdri <= 0.73122212560016 ~ 19,

kdri <= 0.73948742626363 ~ 20,
kdri <= 0.74767416814119 ~ 21,
kdri <= 0.75489183869684 ~ 22,
kdri <= 0.76328988492547 ~ 23,
kdri <= 0.77263540810356 ~ 24,

kdri <= 0.78104071392144 ~ 25,
kdri <= 0.78961641663597 ~ 26,
kdri <= 0.79763195276282 ~ 27,
kdri <= 0.80629306366570 ~ 28,
kdri <= 0.81315950139425 ~ 29,

kdri <= 0.82133189024934 ~ 30,
kdri <= 0.82993557639931 ~ 31,
kdri <= 0.83833021902837 ~ 32,
kdri <= 0.84644064330782 ~ 33,
kdri <= 0.85517598569799 ~ 34,

kdri <= 0.86354609606526 ~ 35,
kdri <= 0.87190221510694 ~ 36,
kdri <= 0.88063855849677 ~ 37,
kdri <= 0.88865695084855 ~ 38,
kdri <= 0.89695104031643 ~ 39,

kdri <= 0.90553622222640 ~ 40,
kdri <= 0.91404086359403 ~ 41,
kdri <= 0.92315954924259 ~ 42,
kdri <= 0.93233041928184 ~ 43,
kdri <= 0.94219294550761 ~ 44,

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.01017417074092 ~ 51,
kdri <= 1.01835848244924 ~ 52,
kdri <= 1.02684438950822 ~ 53,
kdri <= 1.03579785070930 ~ 54,

kdri <= 1.04562207982550 ~ 55,
kdri <= 1.05722970377490 ~ 56,
kdri <= 1.06708646003775 ~ 57,
kdri <= 1.07634603079629 ~ 58,
kdri <= 1.08575543697971 ~ 59,

kdri <= 1.09710182684712 ~ 60,
kdri <= 1.10693175142868 ~ 61,
kdri <= 1.11742172465403 ~ 62,
kdri <= 1.12918033244636 ~ 63,
kdri <= 1.14105126527764 ~ 64,

kdri <= 1.15331684032151 ~ 65,
kdri <= 1.16542473503044 ~ 66,
kdri <= 1.17696136175085 ~ 67,
kdri <= 1.18927324253637 ~ 68,
kdri <= 1.20164565923095 ~ 69,

kdri <= 1.21541307690033 ~ 70,
kdri <= 1.22911205232018 ~ 71,
kdri <= 1.24245840305292 ~ 72,
kdri <= 1.25730683392563 ~ 73,
kdri <= 1.27215765519370 ~ 74,

kdri <= 1.28707474004391 ~ 75,
kdri <= 1.30379077237733 ~ 76,
kdri <= 1.32043073795346 ~ 77,
kdri <= 1.33470727747430 ~ 78,
kdri <= 1.35223394649512 ~ 79,

kdri <= 1.36711461717176 ~ 80,
kdri <= 1.38613042767243 ~ 81,
kdri <= 1.40388472846480 ~ 82,
kdri <= 1.42405153123492 ~ 83,
kdri <= 1.44236712388566 ~ 84,

kdri <= 1.46037025078765 ~ 85,
kdri <= 1.48228201160165 ~ 86,
kdri <= 1.50315404920549 ~ 87,
kdri <= 1.53116364711516 ~ 88,
kdri <= 1.55977565496533 ~ 89,

kdri <= 1.58862998476342 ~ 90,
kdri <= 1.62205197669837 ~ 91,
kdri <= 1.65260362699008 ~ 92,
kdri <= 1.70084638382016 ~ 93,
kdri <= 1.75251517684434 ~ 94,

kdri <= 1.80242900060437 ~ 95,
kdri <= 1.85527326893612 ~ 96,
kdri <= 1.93490145976700 ~ 97,
kdri <= 2.03614843248107 ~ 98,
kdri <= 2.21047627199221 ~ 99,

kdri <= 3.18031420972338 ~ 100,
kdri <= 20 ~ 100,
TRUE ~ NA_real_)
kdpi
}