Package {egfr}


Type: Package
Title: Estimated Glomerular Filtration Rate (eGFR) Calculators
Version: 2.0.0
Description: A comprehensive, vectorised toolkit for estimating glomerular filtration rate (eGFR) and creatinine clearance from serum creatinine, cystatin C, or both. Implements adult, paediatric, and neonatal equations, including the Chronic Kidney Disease Epidemiology Collaboration (CKD-EPI) equations (2009, 2012, 2021), the Modification of Diet in Renal Disease (MDRD) Study equation, Cockcroft-Gault, the European Kidney Function Consortium (EKFC) equations, the Full Age Spectrum (FAS) equations, the Lund-Malmoe equations, the Berlin Initiative Study (BIS) equations, the Schwartz bedside equation, the Chronic Kidney Disease in Children Under 25 (CKiD U25) equations, the Caucasian, Asian, Paediatric, and Adult (CAPA) cystatin C equation, and a neonatal equation. Helpers for body surface area, chronic kidney disease (CKD) staging following the Kidney Disease: Improving Global Outcomes (KDIGO) guideline, and unit conversions are included. Methods are described in Levey et al. (2009) <doi:10.7326/0003-4819-150-9-200905050-00006>, Inker et al. (2021) <doi:10.1056/NEJMoa2102953>, and Pottel et al. (2021) <doi:10.7326/M20-4366>. Inspired by the 'kidney.epi' package.
License: MIT + file LICENSE
Encoding: UTF-8
Depends: R (≥ 4.0)
Suggests: knitr, rmarkdown, testthat (≥ 3.0.0)
Config/testthat/edition: 3
URL: https://github.com/mhovd/egfr, https://mhovd.github.io/egfr/
BugReports: https://github.com/mhovd/egfr/issues
Config/roxygen2/version: 8.1.0
VignetteBuilder: knitr
NeedsCompilation: no
Packaged: 2026-09-24 09:28:14 UTC; markushovd
Author: Markus Hovd ORCID iD [aut, cre, cph]
Maintainer: Markus Hovd <markus@hovd.io>
Repository: CRAN
Date/Publication: 2026-09-24 09:40:02 UTC

egfr: Estimated Glomerular Filtration Rate Calculators

Description

A vectorised toolkit implementing 19 validated equations for estimating glomerular filtration rate (eGFR) and creatinine clearance from serum creatinine, cystatin C, or both, plus helpers for body surface area, KDIGO CKD staging, and unit conversion.

Details

All ⁠egfr_*()⁠ functions are fully vectorised: every numeric argument may be a scalar or a vector. Scalars are recycled against the longest vector. Results are returned unrounded (full precision) in mL/min/1.73m^2, except egfr_cockcroft_gault() which returns creatinine clearance in mL/min.

Author(s)

Maintainer: Markus Hovd markus@hovd.io (ORCID) [copyright holder]

Authors:

See Also

Useful links:


Body surface area (BSA)

Description

Computes body surface area, used to convert between absolute (mL/min) and BSA-normalised (mL/min/1.73m^2) GFR.

Usage

bsa(weight, height, method = c("dubois", "haycock", "mosteller"))

Arguments

weight

Numeric vector of body weight in kilograms.

height

Numeric vector of height in centimetres.

method

One of "dubois" (Du Bois & Du Bois, default), "haycock", or "mosteller".

Value

Numeric vector of body surface area in m^2.

References

Du Bois D, Du Bois EF. Arch Intern Med. 1916;17:863-871. Haycock GB, et al. J Pediatr. 1978;93(1):62-66. Mosteller RD. N Engl J Med. 1987;317(17):1098.

Examples

bsa(weight = 80, height = 180)
bsa(weight = 20, height = 110, method = "haycock")

KDIGO CKD stage from eGFR

Description

Classifies eGFR values into KDIGO GFR categories (G1-G5).

Usage

ckd_stage(egfr)

Arguments

egfr

Numeric vector of eGFR in mL/min/1.73m^2.

Value

Character vector of GFR categories: "G1", "G2", "G3a", "G3b", "G4", or "G5".

References

Kidney Disease: Improving Global Outcomes (KDIGO) CKD Work Group. KDIGO 2012 Clinical Practice Guideline. Kidney Int Suppl. 2013.

Examples

ckd_stage(c(95, 72, 50, 35, 20, 8))

Convert serum creatinine between mg/dL and umol/L

Description

Convert serum creatinine between mg/dL and umol/L

Usage

convert_creatinine(creatinine, from = "mg/dl", to = "umol/l")

Arguments

creatinine

Numeric vector of serum creatinine.

from, to

Units, either "mg/dl" or "umol/l".

Value

Numeric vector of converted creatinine.

Examples

convert_creatinine(88.4, from = "umol/l", to = "mg/dl")
convert_creatinine(1.0, from = "mg/dl", to = "umol/l")

Berlin Initiative Study (BIS1) creatinine eGFR (2012)

Description

Estimates GFR from serum creatinine using the BIS1 equation (Schaeffner et al., 2012), developed in an elderly (>= 70 years) German cohort.

Usage

egfr_bis_cr(
  creatinine,
  age,
  sex,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Validity

Derived in 610 community-dwelling Germans aged 70 years or older (mean age 78.5). It should not be applied below age 70, and the authors note that no external validation dataset was used.

References

Schaeffner ES, Ebert N, Delanaye P, et al. Two novel equations to estimate kidney function in persons aged 70 years or older. Ann Intern Med. 2012;157(7):471-481. doi:10.7326/0003-4819-157-7-201210020-00003

Examples

egfr_bis_cr(creatinine = 1.1, age = 75, sex = "female")

CAPA paediatric cystatin C eGFR (2014)

Description

Estimates GFR from serum cystatin C using the Caucasian, Asian, paediatric, and adult (CAPA) equation (Grubb et al., 2014).

Usage

egfr_capa(cystatin, age)

Arguments

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Validity

Derived in 4690 subjects spanning children and Caucasian and Asian adults, and intended for use across all ages. Note that CAPA is known to return implausibly high estimates in children under 10 years.

References

Grubb A, Horio M, Hansson LO, et al. Generation of a new cystatin C-based estimating equation for GFR by use of 7 assays standardized to the international calibrator. Clin Chem. 2014;60(7):974-986. doi:10.1373/clinchem.2013.220707

Examples

egfr_capa(cystatin = 1.0, age = 12)

CKD-EPI 2009 creatinine eGFR (with race coefficient)

Description

Estimates GFR from serum creatinine using the original CKD-EPI 2009 creatinine equation (Levey et al., 2009), which includes a race coefficient. Retained for historical comparison; the race-free egfr_ckdepi_cr_2021() is now recommended.

Usage

egfr_ckdepi_cr_2009(
  creatinine,
  age,
  sex,
  ethnicity = NULL,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female",
  label_afroamerican = c("black", "Black")
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

ethnicity

Optional vector of ethnicity labels. Records matching label_afroamerican receive the Black race coefficient (1.159); all others receive 1.0. If NULL (default) no race coefficient is applied.

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

label_afroamerican

Values in ethnicity denoting Black/African American race. Defaults to c("black", "Black").

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Levey AS, Stevens LA, Schmid CH, et al. A new equation to estimate glomerular filtration rate. Ann Intern Med. 2009;150(9):604-612. doi:10.7326/0003-4819-150-9-200905050-00006

Examples

egfr_ckdepi_cr_2009(creatinine = 1.0, age = 50, sex = "female")
egfr_ckdepi_cr_2009(1.0, 50, "female",
  ethnicity = "black", label_afroamerican = "black"
)

CKD-EPI 2021 creatinine eGFR (race-free)

Description

Estimates GFR from serum creatinine using the race-free CKD-EPI 2021 creatinine equation (Inker et al., 2021). This is the equation recommended for adults (>= 18 years) by current US guidelines.

Usage

egfr_ckdepi_cr_2021(
  creatinine,
  age,
  sex,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Inker LA, Eneanya ND, Coresh J, et al. New creatinine- and cystatin C-based equations to estimate GFR without race. N Engl J Med. 2021;385(19):1737-1749. doi:10.1056/NEJMoa2102953

Examples

egfr_ckdepi_cr_2021(creatinine = 1.0, age = 50, sex = "female")
egfr_ckdepi_cr_2021(c(0.8, 1.2), c(40, 65), c("female", "male"))

CKD-EPI 2021 combined creatinine + cystatin C eGFR (race-free)

Description

Estimates GFR using both serum creatinine and cystatin C with the race-free CKD-EPI 2021 combined equation (Inker et al., 2021). This is the most accurate of the CKD-EPI equations when both biomarkers are available.

Usage

egfr_ckdepi_cr_cys_2021(
  creatinine,
  cystatin,
  age,
  sex,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Inker LA, Eneanya ND, Coresh J, et al. N Engl J Med. 2021;385(19):1737-1749. doi:10.1056/NEJMoa2102953

Examples

egfr_ckdepi_cr_cys_2021(
  creatinine = 1.0, cystatin = 0.9,
  age = 50, sex = "female"
)

CKD-EPI 2012 cystatin C eGFR

Description

Estimates GFR from serum cystatin C using the CKD-EPI 2012 cystatin C equation (Inker et al., 2012). The formula is identical to the race-free 2021 cystatin C equation and is retained for backward compatibility.

Usage

egfr_ckdepi_cys_2012(
  cystatin,
  age,
  sex,
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Inker LA, Schmid CH, Tighiouart H, et al. Estimating GFR from serum creatinine and cystatin C. N Engl J Med. 2012;367(1):20-29. doi:10.1056/NEJMoa1114248

Examples

egfr_ckdepi_cys_2012(cystatin = 0.9, age = 55, sex = "male")

CKD-EPI 2021 cystatin C eGFR (race-free)

Description

Estimates GFR from serum cystatin C using the race-free CKD-EPI 2021 cystatin C equation (Inker et al., 2021). The identical formula was first published in 2012; see egfr_ckdepi_cys_2012().

Usage

egfr_ckdepi_cys_2021(
  cystatin,
  age,
  sex,
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Age coefficient

This function uses an age factor of 0.9962^age, as reported in Table 2 of Inker et al. (2021), which gives the fitted coefficient to four decimal places (95% CI 0.9957 to 0.9966). The original 2012 publication and the National Kidney Foundation calculator print the same coefficient rounded to 0.996. The four-decimal form is used here for consistency with the 0.9938 and 0.9961 factors of the other CKD-EPI 2021 equations. Results are therefore about 1.2% higher at age 60 and 1.6% higher at age 80 than a calculator using 0.996.

References

Inker LA, Eneanya ND, Coresh J, et al. N Engl J Med. 2021;385(19):1737-1749. doi:10.1056/NEJMoa2102953

Examples

egfr_ckdepi_cys_2021(cystatin = 0.9, age = 55, sex = "male")

CKiD U25 creatinine eGFR

Description

Estimates GFR in children and young adults (ages 1-25) using the CKiD U25 creatinine equation (Pierce et al., 2021). This is the first-choice paediatric equation.

Usage

egfr_ckid_u25_cr(
  creatinine,
  age,
  sex,
  height,
  creatinine_units = "mg/dl",
  height_units = "cm",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

height

Numeric vector of height.

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

height_units

Units of height: "cm" (default) or "m".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Validity

Developed for ages 1-25 years; the reference calculator published with the equation is restricted to that range. Values outside it are extrapolations.

References

Pierce CB, Munoz A, Ng DK, Warady BA, Furth SL, Schwartz GJ. Age- and sex-dependent clinical equations to estimate GFR in children and young adults with CKD. Kidney Int. 2021;99(4):948-956. doi:10.1016/j.kint.2020.10.047

Examples

egfr_ckid_u25_cr(creatinine = 0.6, age = 10, sex = "male", height = 140)

CKiD U25 combined creatinine + cystatin C eGFR

Description

Arithmetic mean of the CKiD U25 creatinine (egfr_ckid_u25_cr()) and cystatin C (egfr_ckid_u25_cys()) estimates.

Usage

egfr_ckid_u25_cr_cys(
  creatinine,
  cystatin,
  age,
  sex,
  height,
  creatinine_units = "mg/dl",
  height_units = "cm",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

height

Numeric vector of height.

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

height_units

Units of height: "cm" (default) or "m".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Pierce CB, et al. Kidney Int. 2021;99(4):948-956. doi:10.1016/j.kint.2020.10.047

Examples

egfr_ckid_u25_cr_cys(
  creatinine = 0.6, cystatin = 0.8, age = 10,
  sex = "male", height = 140
)

CKiD U25 cystatin C eGFR

Description

Estimates GFR in children and young adults (ages 1-25) using the CKiD U25 cystatin C equation (Pierce et al., 2021).

Usage

egfr_ckid_u25_cys(
  cystatin,
  age,
  sex,
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Pierce CB, et al. Kidney Int. 2021;99(4):948-956. doi:10.1016/j.kint.2020.10.047

Examples

egfr_ckid_u25_cys(cystatin = 0.8, age = 10, sex = "male")

Cockcroft-Gault creatinine clearance

Description

Estimates creatinine clearance (not BSA-normalised eGFR) using the Cockcroft-Gault equation (Cockcroft & Gault, 1976). Commonly used for drug dosing.

Usage

egfr_cockcroft_gault(
  creatinine,
  age,
  sex,
  weight,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

weight

Numeric vector of body weight in kilograms.

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of creatinine clearance in mL/min.

Interpretation

This equation returns creatinine clearance in mL/min, which is not normalised to 1.73 m^2 and is not directly comparable with the other ⁠egfr_*()⁠ functions. Creatinine clearance overestimates true GFR because creatinine is secreted by the renal tubules. The equation was derived in 249 hospitalised adults aged 18-92, all male, using non-standardised (Jaffe) creatinine; it is therefore not IDMS-traceable and differs systematically from modern eGFR equations. The 15% downward adjustment for women (the 0.85 factor) is stated in the original 1976 publication, though it was asserted rather than derived, as the derivation cohort was male.

References

Cockcroft DW, Gault MH. Prediction of creatinine clearance from serum creatinine. Nephron. 1976;16(1):31-41. doi:10.1159/000180580

Examples

egfr_cockcroft_gault(creatinine = 1.0, age = 50, sex = "male", weight = 80)

EKFC creatinine eGFR (2021)

Description

Estimates GFR from serum creatinine using the European Kidney Function Consortium (EKFC) creatinine equation (Pottel et al., 2021).

Usage

egfr_ekfc_cr(
  creatinine,
  age,
  sex,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female",
  q = NULL
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

q

Optional numeric vector of the reference creatinine Q value (median creatinine for the age/sex, in mg/dL). When NULL (the default) the built-in EKFC reference Q is used; supply a value to use a population-, assay-, or individual-specific Q. Recycled to the length of the other inputs.

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Reference Q

The default Q follows the published EKFC specification. For ages 2-25 years inclusive Q is a sex-specific polynomial in age (given by the authors on the micromol/L scale and converted here to mg/dL):

\ln(Q_{male}) = 3.200 + 0.259 a - 0.543 \ln(a) - 0.00763 a^2 + 0.0000790 a^3

\ln(Q_{female}) = 3.080 + 0.177 a - 0.223 \ln(a) - 0.00596 a^2 + 0.0000686 a^3

Above age 25 Q is constant at the adult values of 0.90 mg/dL (80 micromol/L) for males and 0.70 mg/dL (62 micromol/L) for females. The polynomial and the adult plateau differ by roughly 1% at the age-25 knot; this step is part of the published specification and is preserved deliberately.

Population-specific adult Q values (e.g. 1.02 / 0.74 mg/dL for Black Europeans) may be supplied via q.

Validity

Developed and validated across ages 2-90 years and serum creatinine 40-490 micromol/L (0.45-5.54 mg/dL). Values outside this range are extrapolations.

References

Pottel H, Bjork J, Courbebaisse M, et al. Development and validation of a modified full age spectrum creatinine-based equation to estimate glomerular filtration rate. Ann Intern Med. 2021;174(2):183-191. doi:10.7326/M20-4366

Examples

egfr_ekfc_cr(creatinine = 1.0, age = 50, sex = "female")
egfr_ekfc_cr(0.5, 8, "male")
egfr_ekfc_cr(1.0, 50, "female", q = 0.72)

EKFC combined creatinine + cystatin C eGFR (2023)

Description

Arithmetic mean of the EKFC creatinine (egfr_ekfc_cr()) and EKFC cystatin C (egfr_ekfc_cys()) estimates.

Usage

egfr_ekfc_cr_cys(
  creatinine,
  cystatin,
  age,
  sex,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female",
  q_cr = NULL,
  q_cys = NULL
)

Arguments

creatinine

Numeric vector of serum creatinine.

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

q_cr

Optional numeric vector of the reference creatinine Q value (median creatinine, in mg/dL) passed to egfr_ekfc_cr(). NULL (default) uses the built-in EKFC reference Q.

q_cys

Optional numeric vector of the reference cystatin C Q value (median cystatin C, in mg/L) passed to egfr_ekfc_cys(). NULL (default) uses the built-in EKFC reference Q.

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Pottel H, Bjork J, Rule AD, et al. N Engl J Med. 2023;388(4):333-343. doi:10.1056/NEJMoa2203769

Examples

egfr_ekfc_cr_cys(creatinine = 1.0, cystatin = 0.9, age = 50, sex = "female")

EKFC cystatin C eGFR (2023)

Description

Estimates GFR from serum cystatin C using the sex- and race-free EKFC cystatin C equation (Pottel et al., 2023).

Usage

egfr_ekfc_cys(cystatin, age, q = NULL)

Arguments

cystatin

Numeric vector of serum cystatin C in mg/L.

age

Numeric vector of age in years.

q

Optional numeric vector of the reference cystatin C Q value (median cystatin C, in mg/L). When NULL (the default) the built-in age-based EKFC reference Q is used; supply a value to use a population- or individual-specific Q. Recycled to the length of the other inputs.

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Reference Q

The default Q is the sex- and race-free value published with the equation: 0.83 mg/L below age 50, and 0.83 + 0.005 * (age - 50) from age 50 onwards. The same value of 0.83 mg/L is endorsed for children (Pottel et al., Pediatr Nephrol. 2024), so no separate paediatric Q is applied.

Validity

Applicable from age 2 years upwards.

References

Pottel H, Bjork J, Rule AD, et al. Cystatin C-based equation to estimate GFR without the inclusion of race and sex. N Engl J Med. 2023;388(4):333-343. doi:10.1056/NEJMoa2203769

Examples

egfr_ekfc_cys(cystatin = 0.9, age = 50)
egfr_ekfc_cys(0.9, 50, q = 0.85)

Full Age Spectrum (FAS) creatinine eGFR

Description

Estimates GFR from serum creatinine using the Full Age Spectrum equation (Pottel et al., 2016), applying the published age- and sex-specific reference Q values across the whole age range.

Usage

egfr_fas_cr(
  creatinine,
  age,
  sex,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Reference Q

Q values are taken from Table 1 of Pottel et al. (2016). They are shared between boys and girls for ages 1-14 (0.26 mg/dL at age 1 rising to 0.61 mg/dL at age 14), become sex-specific for ages 15-19, and reach the adult values of 0.90 mg/dL (male) and 0.70 mg/dL (female) from age 20 onwards. Note that the adult plateau begins at age 20, not 18.

Validity

The published equation is defined from age 2 years upwards.

References

Pottel H, Hoste L, Dubourg L, et al. An estimated glomerular filtration rate equation for the full age spectrum. Nephrol Dial Transplant. 2016;31(5):798-806. doi:10.1093/ndt/gfv454

Examples

egfr_fas_cr(creatinine = 1.0, age = 50, sex = "female")
egfr_fas_cr(0.5, 10, "male")

Lund-Malmoe Revised creatinine eGFR (2011)

Description

Estimates GFR from serum creatinine using the revised Lund-Malmoe equation (Bjork et al., 2011). Piecewise-linear in plasma creatinine (umol/L) with sex-specific knots.

Usage

egfr_lund_malmo(
  creatinine,
  age,
  sex,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female"
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Validity

Derived in 850 Swedish adults aged 18-95 years. Not validated in children; a separate paediatric adaptation (LMR18) was published in 2020.

References

Bjork J, Grubb A, Sterner G, Nyman U. Revised equations for estimating glomerular filtration rate based on the Lund-Malmo Study cohort. Scand J Clin Lab Invest. 2011;71(3):232-239. doi:10.3109/00365513.2011.557086

Examples

egfr_lund_malmo(creatinine = 1.0, age = 50, sex = "female")

MDRD 4-variable eGFR (IDMS-standardised)

Description

Estimates GFR from serum creatinine using the IDMS-traceable 4-variable MDRD Study equation (Levey et al., 2006). Historical; superseded by CKD-EPI for clinical use.

Usage

egfr_mdrd(
  creatinine,
  age,
  sex,
  ethnicity = NULL,
  creatinine_units = "mg/dl",
  label_sex_male = "male",
  label_sex_female = "female",
  label_afroamerican = c("black", "Black")
)

Arguments

creatinine

Numeric vector of serum creatinine.

age

Numeric vector of age in years.

sex

Vector of sex labels (see label_sex_male/label_sex_female).

ethnicity

Optional vector of ethnicity labels. Records matching label_afroamerican receive the Black race coefficient (1.159); all others receive 1.0. If NULL (default) no race coefficient is applied.

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

label_sex_male, label_sex_female

Values in sex that denote male and female records. Defaults to "male"/"female".

label_afroamerican

Values in ethnicity denoting Black/African American race. Defaults to c("black", "Black").

Value

Numeric vector of eGFR in mL/min/1.73m^2.

References

Levey AS, Coresh J, Greene T, et al. Using standardized serum creatinine values in the MDRD study equation. Ann Intern Med. 2006;145(4):247-254. doi:10.7326/0003-4819-145-4-200608150-00004

Examples

egfr_mdrd(creatinine = 1.2, age = 60, sex = "male")

Neonatal creatinine eGFR (2022)

Description

Estimates GFR in term-born neonates using the updated Schwartz-type coefficient of Smeets et al. (2022). Requires IDMS-standardised creatinine.

Usage

egfr_neonatal(
  creatinine,
  height,
  creatinine_units = "mg/dl",
  height_units = "cm"
)

Arguments

creatinine

Numeric vector of serum creatinine.

height

Numeric vector of height.

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

height_units

Units of height: "cm" (default) or "m".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Validity

Derived for term-born neonates (gestational age >= 37 weeks) over postnatal days 0-28. The authors explicitly note it is not intended for preterm neonates, and that validation in a large neonatal cohort is still required.

References

Smeets NJL, IntHout J, van der Burgh MJP, Schwartz GJ, Schreuder MF, de Wildt SN. Maturation of GFR in term-born neonates: an individual participant data meta-analysis. J Am Soc Nephrol. 2022;33(7):1277-1292. doi:10.1681/ASN.2021101326

Examples

egfr_neonatal(creatinine = 0.5, height = 50)

Schwartz bedside paediatric eGFR (2009)

Description

Estimates GFR in children using the bedside Schwartz equation (Schwartz et al., 2009). Requires IDMS-standardised creatinine.

Usage

egfr_schwartz(
  creatinine,
  height,
  creatinine_units = "mg/dl",
  height_units = "cm"
)

Arguments

creatinine

Numeric vector of serum creatinine.

height

Numeric vector of height.

creatinine_units

Units of creatinine: "mg/dl" (default) or "umol/l".

height_units

Units of height: "cm" (default) or "m".

Value

Numeric vector of eGFR in mL/min/1.73m^2.

Validity

Derived in 349 children with CKD aged 1-16 years. Requires IDMS-standardised creatinine.

References

Schwartz GJ, Munoz A, Schneider MF, et al. New equations to estimate GFR in children with CKD. J Am Soc Nephrol. 2009;20(3):629-637. doi:10.1681/ASN.2008030287

Examples

egfr_schwartz(creatinine = 0.5, height = 120)

Normalise or de-normalise GFR using body surface area

Description

Converts between absolute creatinine clearance (mL/min) and BSA-normalised GFR (mL/min/1.73m^2).

Usage

gfr_bsa_adjust(gfr, bsa, to = c("normalized", "absolute"))

Arguments

gfr

Numeric vector of GFR values.

bsa

Numeric vector of body surface area in m^2 (e.g. from bsa()).

to

Either "normalized" (absolute -> per 1.73m^2, the default) or "absolute" (per 1.73m^2 -> absolute).

Value

Numeric vector of converted GFR.

Examples

gfr_bsa_adjust(100, bsa = 2.0, to = "normalized")
gfr_bsa_adjust(90, bsa = 2.0, to = "absolute")