Weight Estimation in Doctors

Published

October 17, 2026

Load packages

Read Data

Show the code
df_wgtest <- 
    readxl::read_xlsx("C:\\Users\\sbngu\\Dropbox\\Research\\Dr Cosmos Yakubu\\Weight Estimation In Doctors\\PAEDIATRIC WEIGHT ESTIMATION KNOWLEDGE AND PRACTICES OF DOCTORS PRACTICING IN GHANA (Responses).xlsx", sheet = 1) 
my_labels <- names(df_wgtest) 

df_wgtest <- 
    df_wgtest %>%
    labelled::set_variable_labels(.labels = my_labels) %>% 
    rename(
        timestamp = Timestamp,
        consent = `Do you give your consent to participate in this study?`, 
        doctor = `Are you a medical doctor?`,
        pghana = `Are you currently practicing in Ghana?`, 
        encounter_pedics = 
            `How  would you describe your encounter with paediatric patients in your practice?`,
        years_practiced = `How many years have you been practicing as a doctor?`, 
        sector = `Which sector do you currently work in? (check all that apply)`, 
        ageyrs = `How old were you at your last birthday?`,
        sex = Gender,
        grade = `What is your current grade?`,
        dept = `Which department do you mostly work?`,
        familiar_method = `Which of the following weight estimation methods are you familiar with?`,
        access_method = `Which of these weight estimation methods do you have ACCESS to?`,
        used_method = 
            `Which of these weight estimation methods do you USE in your practice? (select as many that apply)`,
        preferred_method = `Which is your PREFERRED method of weight estimation?(select one)`,
        reason_method = `What is the REASON for your choice of preferred method?`,
        ever_used_wgt_est = `Do you use or have you ever used an age-based weight estimation formula?`,
        used_formula = `Which of the age-based formulae have you ever used?`,
        method_accurate = `Do you find your most used/preferred weight estimation method to be accurate and reliable in most cases?`,
        assess_accuracy = `How do you assess the accuracy of your most preferred method compared to other methods?`,
        method_scale = `On a scale of 1 to 10, how confident are you in the accuracy of your preferred method`)
#labelled::var_label(df_wgtest)

Cleaning Data

Show the code
df_wgtest_clean <- 
    df_wgtest %>% 
    select(-c(timestamp, consent)) %>% 
    mutate(
        encounter_pedics = case_when(
            encounter_pedics == "All the time" ~ "Always", 
            TRUE ~ encounter_pedics) %>% 
            factor(levels = c("Always", "Often", "Occasionally", "Never")), 
        sector = case_when(
            sector == "CHAG" ~ "Public", 
            sector == "Currently home after housejob" ~ NA, 
            TRUE ~ sector),
        sector_public = case_when(
            sector %in% c("Public", "Both", "CHAG") ~ "Yes", TRUE ~ "No"), 
        sector_private = case_when(
            sector %in% c("Private", "Both") ~ "Yes", TRUE ~ "No"),
        grade_specialist = case_when(
            grade %in% c("Consultant", "Specialist", "Senior specialist") ~ "Yes", 
            TRUE ~ "No"), 
        grade_mo = case_when(
            grade %in% c("House officer", "Medical officer") ~ "Yes", TRUE ~ "No"), 
        grade_smo = case_when(
            grade %in% c(
                "Principal medical officer", 
                "Senior medical officer", 
                "Resident") ~ "Yes", 
            TRUE ~ "No"),
        dept = toupper(dept),
        dept_adult = case_when(
            str_detect(dept, "ADULT") ~ "Yes", 
            str_detect(dept, "OBSTE") ~ "Yes",
            str_detect(dept, "GYN") ~ "Yes",
            str_detect(dept, "MATERNITY") ~ "Yes",
            str_detect(dept, "ALL") ~ "Yes",
            str_detect(dept, "ANAESTHESIA") ~ "Yes",
            str_detect(dept, "MIXED") ~ "Yes",
            str_detect(dept, "INTENSIVE CARE UNIT") ~ "Yes",
            str_detect(dept, "MOSTLY IN THEATER") ~ "Yes",
            str_detect(dept, "ORTHOPAEDICS") ~ "Yes",
            str_detect(dept, "PLASTIC SURGERY") ~ "Yes",
            str_detect(dept, "PUBLIC HEALTH") ~ "Yes",
            str_detect(dept, "RADIOLOGY") ~ "Yes",
            str_detect(dept, "SURGERY DEPARTMENT") ~ "Yes",
            TRUE ~ "No"), 
        dept_child = case_when(
            str_detect(dept, "CHILDREN") ~ "Yes", 
            str_detect(dept, "PAEDIATRIC") ~ "Yes",
            str_detect(dept, "NICU") ~ "Yes",
            str_detect(dept, "PICU") ~ "Yes",
            str_detect(dept, "ALL") ~ "Yes",
            str_detect(dept, "ANAESTHESIA") ~ "Yes",
            str_detect(dept, "MIXED") ~ "Yes",
            str_detect(dept, "INTENSIVE CARE UNIT") ~ "Yes",
            str_detect(dept, "MOSTLY IN THEATER") ~ "Yes",
            str_detect(dept, "ORTHOPAEDICS") ~ "Yes",
            str_detect(dept, "PLASTIC SURGERY") ~ "Yes",
            str_detect(dept, "PUBLIC HEALTH") ~ "Yes",
            str_detect(dept, "RADIOLOGY") ~ "Yes",
            str_detect(dept, "SURGERY DEPARTMENT") ~ "Yes",
            TRUE ~ "No"), 
        dept_emergency = case_when(
            str_detect(dept, "NICU") ~ "Yes",
            str_detect(dept, "PICU") ~ "Yes",
            str_detect(dept, "ANAESTHESIA") ~ "Yes",
            str_detect(dept, "INTENSIVE") ~ "Yes",
            str_detect(dept, "EMERGENCY") ~ "Yes",
            str_detect(dept, "THEAT") ~ "Yes",
            TRUE ~ "No"), 
        fm_broselow = case_when(
            str_detect(familiar_method, "Broselow tape") ~ "Yes",
            TRUE ~ "No"), 
        fm_argall = case_when(
            str_detect(familiar_method, "(A|a)rgall") ~ "Yes",
            TRUE ~ "No"), 
        fm_nelson = case_when(
            str_detect(familiar_method, "Nelson") ~ "Yes",
            TRUE ~ "No"), 
        fm_pawperxlmac = case_when(
            str_detect(familiar_method,"(PAWPER -XL - MAC)")~"Yes",
            TRUE ~ "No"),
        fm_pawperxl = case_when(
            str_detect(familiar_method, "(PAWPER-XL)") ~ "Yes",
            TRUE ~ "No"), 
        fm_pawper = case_when(
            str_detect(familiar_method, "(PAWPER)") ~ "Yes",
            TRUE ~ "No"), 
        fm_mercy = case_when(
            str_detect(familiar_method, "Mercy") ~ "Yes",
            TRUE ~ "No"), 
        fm_luscombe = case_when(
            str_detect(familiar_method, "Luscombe") ~ "Yes",
            TRUE ~ "No"), 
        fm_parental = case_when(
            str_detect(familiar_method, "Parental weight estimate") ~ "Yes",
            TRUE ~ "No"),
        fm_visual = case_when(
            str_detect(familiar_method, "(G|g)uess")~"Yes",
            TRUE ~ "No"),
        fm_aplsnew = case_when(
            str_detect(familiar_method, "New Advanced") ~ "Yes",
            TRUE ~ "No"), 
        fm_aplsold = case_when(
            str_detect(familiar_method, "Old Advanced") ~ "Yes", 
            TRUE ~ "No"), 
        fm_chinese = case_when(
            str_detect(familiar_method, "Chinese") ~ "Yes",
            TRUE ~ "No"),
        fm_michigan = case_when(
            str_detect(familiar_method, "ichigan") ~ "Yes",
            TRUE ~ "No"),
        fm_phone = case_when(
            str_detect(familiar_method, "Phone") ~ "Yes",
            TRUE ~ "No"),
        fm_agebased = case_when(
            str_detect(familiar_method, "(A|a)ge base") ~ "Yes",
            str_detect(familiar_method, "(2n|2x)") ~ "Yes",
            str_detect(familiar_method, "Age x 3") ~ "Yes",
            TRUE ~ "No"),
        fm_none = if_else(
            if_any(fm_broselow:fm_agebased, ~ .x == "Yes"), 
            "No", "Yes"), 
        fm_agebased2 = case_when(
            fm_agebased == "Yes" ~ "Yes", 
            fm_argall == "Yes" ~ "Yes", 
            fm_nelson == "Yes" ~ "Yes", 
            fm_luscombe == "Yes" ~ "Yes", 
            fm_aplsnew == "Yes" ~ "Yes", 
            fm_aplsold == "Yes" ~ "Yes", 
            fm_chinese == "Yes" ~ "Yes", 
            fm_michigan == "Yes" ~ "Yes", 
            TRUE ~ "No"),
        fm_pawper2 = case_when(
            fm_pawperxlmac == "Yes" ~ "Yes", 
            fm_pawperxl == "Yes" ~ "Yes", 
            fm_pawper == "Yes" ~ "Yes", 
            TRUE ~ "No"),
        am_agebased = case_when(
            str_detect(access_method, "Age") ~ "Yes", TRUE ~ "No"), 
        am_parental = case_when(
            str_detect(access_method, "Parental") ~ "Yes", TRUE ~ "No"), 
        am_phone = case_when(
            str_detect(access_method, "Phone") ~ "Yes", TRUE ~ "No"), 
        am_broselow = case_when(
            str_detect(access_method, "Broselow") ~ "Yes", TRUE ~ "No"), 
        am_pawper = case_when(
            str_detect(access_method, "PAWPER tape") ~ "Yes", TRUE ~ "No"), 
        am_mercy = case_when(
            str_detect(access_method, "Mercy tape") ~ "Yes", TRUE ~ "No"), 
        am_none = if_else(
            if_any(am_agebased:am_mercy, ~ .x == "Yes"), 
            "No", "Yes"), 
        um_agebased = case_when(
            str_detect(used_method, "Age") ~ "Yes", TRUE ~ "No"), 
        um_parental = case_when(
            str_detect(used_method, "Parental") ~ "Yes", TRUE ~ "No"), 
        um_phone = case_when(
            str_detect(used_method, "Phone") ~ "Yes", TRUE ~ "No"), 
        um_broselow = case_when(
            str_detect(used_method, "Broselow") ~ "Yes", TRUE ~ "No"), 
        um_visual = case_when(
            str_detect(used_method, "Visual") ~ "Yes", TRUE ~ "No"),
        um_pawper = case_when(
            str_detect(used_method, "PAWPER tape") ~ "Yes", TRUE ~ "No"), 
        um_mercy = case_when(
            str_detect(used_method, "Mercy tape") ~ "Yes", TRUE ~ "No"), 
        um_none = if_else(
            if_any(um_agebased:um_mercy, ~ .x == "Yes"), 
            "No", "Yes"), 
        pm_agebased = case_when(
            str_detect(preferred_method, "Age") ~ "Yes", TRUE ~ "No"), 
        pm_parental = case_when(
            str_detect(preferred_method, "Parental") ~ "Yes", TRUE ~ "No"), 
        pm_broselow = case_when(
            str_detect(preferred_method, "Broselow") ~ "Yes", TRUE ~ "No"), 
        pm_visual = case_when(
            str_detect(preferred_method, "Visual") ~ "Yes", TRUE ~ "No"),
        pm_pawper = case_when(
            str_detect(preferred_method, "PAWPER tape") ~ "Yes", TRUE ~ "No"), 
        pm_mercy = case_when(
            str_detect(preferred_method, "Mercy tape") ~ "Yes", TRUE ~ "No"), 
        pm_none = if_else(
            if_any(pm_agebased:pm_mercy, ~ .x == "Yes"), 
            "No", "Yes"),
        reason_method2 = case_when(
            reason_method == "Accuracy" ~ "Accuracy", 
            reason_method == "Convenient" ~ "Convenient", 
            reason_method == "Easily available" ~ "Easily available", 
            reason_method == "That is the only method of weight estimation i know" ~
                        "That is the only method of weight estimation i know"), 
        grade2 = fct_recode(
            case_when(
                grade %in% c(
                    "Consultant", 
                    "Senior specialist", 
                    "Specialist") ~ "Specialist", 
                grade %in% c(
                    "Principal medical officer", 
                    "Senior medical officer", 
                    "Resident")~ "Senior Medical Officer", 
                grade %in% c(
                    "House officer", 
                    "Medical officer") ~ "Medical officer")) |> 
            factor(levels = c(
                "Medical officer", 
                "Senior Medical Officer", 
                "Specialist")), 
        good_method = case_when(
            um_mercy == "Yes" ~ "Yes", 
            um_pawper == "Yes" ~ "Yes", 
            um_broselow == "Yes" ~ "Yes",
            TRUE ~ "No") |> factor()) %>%
    drop_na(doctor, pghana) 
        

labelled::var_label(df_wgtest_clean) <- 
    list(
        sector_private = "Works in Private Sector", 
        sector_public = "Works in Public Sector",
        grade2 = "Grade of Doctor",
        grade_specialist = "Grade: Specialist/Consultant", 
        grade_mo = "Grade: Medical/House Officer", 
        grade_smo = "Grade: Senior/Principal Medical Officer", 
        dept_adult = "Department: Adult", 
        encounter_pedics = "Encounter with padiatric patients?",
        dept_child = "Department: Pediatric", 
        dept_emergency = "Department: Emergency", 
        fm_broselow  = "Familiar Method: Broselow",
        fm_argall = "Familiar Method: Argall", 
        fm_nelson = "Familiar Method: Nelson", 
        fm_pawperxl = "Familiar Method: PAWPER-XL",
        fm_pawperxlmac = "Familiar Method: PAWPER-XL-MAC",
        fm_pawper = "Familiar Method: PAWPER",
        fm_pawper2 = "Familiar Method: Any PAWPER",
        fm_mercy = "Familiar Method: Mercy Tape", 
        fm_luscombe = "Familiar Method: Luscombe", 
        fm_aplsnew  = "Familiar Method: APLS (New)",
        fm_aplsold  = "Familiar Method: APLS (Old)",
        fm_chinese = "Familiar Method: Chinese", 
        fm_agebased = "Familiar Method: Age-Based", 
        fm_agebased2 = "Familiar Method: Any Age-Based",
        fm_michigan = "Familiar Method: Michigan", 
        fm_phone = "Familiar Method: Phone App",
        fm_visual = "Familiar Method: Visual",
        fm_parental = "Familiar Method: Parental Estimation",
        fm_none = "Familiar Method: None", 
        am_agebased = "Access Method: Age Based",
        am_parental  = "Access Method: Parental Estimation",
        am_phone  = "Access Method: Phone App.", 
        am_broselow = "Access Method: Broselow", 
        am_pawper  = "Access Method: PAWPER Tape",
        am_mercy  = "Access Method: Mercy Tape",
        am_none  = "Access Method: None", 
        um_agebased = "Used Method: Age Based",
        um_parental  = "Used Method: Parental Estimation",
        um_phone  = "Used Method: Phone App.", 
        um_broselow = "Used Method: Broselow", 
        um_pawper  = "Used Method: PAWPER Tape",
        um_mercy  = "Used Method: Mercy Tape",
        um_visual  = "Used Method: Visual",
        um_none  = "Used Method: None", 
        pm_agebased = "Preferred Method: Age Based",
        pm_parental  = "Preferred Method: Parental Estimation",
        pm_broselow = "Preferred Method: Broselow", 
        pm_pawper  = "Preferred Method: PAWPER Tape",
        pm_mercy  = "Preferred Method: Mercy Tape",
        pm_visual  = "Preferred Method: Visual",
        pm_none  = "Preferred Method: None", 
        reason_method2 = "Reaosn for Method choice", 
        sector = "Sector of Work", 
        years_practiced  = "Years practiced medicine", 
        ageyrs = "Age (years)", 
        method_accurate = "Preferred method accurate", 
        assess_accuracy = "PM accuracy compared to others", 
        method_scale = "Preferred method scale", 
        good_method = "Appropriate method used")

Summary of all data

Show the code
gtsummary::theme_gtsummary_compact()
Setting theme "Compact"
Show the code
gtsummary::theme_gtsummary_eda()
Setting theme "Exploratory Data Analysis"
Show the code
df_wgtest_clean %>% 
    gtsummary::tbl_summary() %>% 
    gtsummary::bold_labels()
Characteristic N = 2541
Are you a medical doctor?
    Yes 254 (100.0%)
Are you currently practicing in Ghana? 251 (98.8%)
Encounter with padiatric patients?
    Always 109 (43.4%)
    Often 90 (35.9%)
    Occasionally 50 (19.9%)
    Never 2 (0.80%)
    Unknown 3
Years practiced medicine
    Median (Q1, Q3) 7.0 (3.0, 11.0)
    Mean (SD) 7.6 (5.3)
    Min, Max 0.1, 31.0
    Unknown 7
Sector of Work
    Both 42 (16.8%)
    Private 12 (4.80%)
    Public 196 (78.4%)
    Unknown 4
Age (years)
    Median (Q1, Q3) 34.0 (31.0, 38.0)
    Mean (SD) 35.0 (5.7)
    Min, Max 23.0, 61.0
    Unknown 12
Gender
    Female 113 (45.0%)
    Male 138 (55.0%)
    Unknown 3
What is your current grade?
    Consultant 3 (1.20%)
    House officer 22 (8.76%)
    Medical officer 82 (32.7%)
    Principal medical officer 7 (2.79%)
    Resident 4 (1.59%)
    Senior medical officer 44 (17.5%)
    Senior specialist 18 (7.17%)
    Specialist 71 (28.3%)
    Unknown 3
Which department do you mostly work?
    "SEE ALL - TREAT ALL" SYSTEM IN THE DISTRICT HOSPITAL 1 (0.40%)
    ADULT AND CHILDREN WARDS, OPD AND EMERGENCY 1 (0.40%)
    ADULT AND PAEDIATRIC THEATERS 1 (0.40%)
    ADULT ONLY EMERGENCY UNIT 9 (3.59%)
    ADULT OPD, INPATIENTS AND EMERGENCY 1 (0.40%)
    ALL DEPARTMENTS 1 (0.40%)
    ALL DEPARTMENTS OF A DISTRICT HOSPITAL 1 (0.40%)
    ANAESTHESIA 2 (0.80%)
    ANAESTHESIA AND INTENSIVE CARE 1 (0.40%)
    CHILDREN'S ONLY EMERGENCY UNIT 16 (6.37%)
    I DID ALL THE FOUR ROTATIONS 1 (0.40%)
    ICU, OBS AND GYNAE. 1 (0.40%)
    INTENSIVE CARE UNIT 1 (0.40%)
    LABORATORY 1 (0.40%)
    MAIN WARD OF A PAEDIATRIC/CHILDREN'S UNIT 52 (20.7%)
    MAIN WARD OF AN ADULT UNIT 23 (9.16%)
    MATERNITY AND GYNAECOLOGCAL WARDS 1 (0.40%)
    MIXED ADULT AND CHILDREN'S EMERGENCY 34 (13.5%)
    MIXED ADULT AND PATIENT CLINICS, THEATRES AND ICU 1 (0.40%)
    MIXED ADULTS AND CHILDREN ELECTIVE AND EMERGENCY SURGERIES 1 (0.40%)
    MIXED IN AND OUT PATIENT 1 (0.40%)
    MIXED IN PATIENTS AND OUT PATIENTS OF BOTH ADULTS AND CHILDREN 1 (0.40%)
    MIXED INPATIENT AND OUTPATIENT, EMERGENCY AND ELECTIVE 1 (0.40%)
    MIXED OUT PATIENT DEPARTMENT (SEES ADULTS AND CHILDREN) 50 (19.9%)
    MIXED OUTPATIENT AND INPATIENT UNITS OF BOTH ADULTS AND CHILDREN. 1 (0.40%)
    MIXED SURGICAL UNIT 1 (0.40%)
    MIXED SURGICAL UNIT OF ADULTS AND PAEDIATRICS 1 (0.40%)
    MIXED WARD AND EMERGENCY OF ADULTS/CHILDREN 1 (0.40%)
    MOSTLY IN THEATER 1 (0.40%)
    NEONATAL INTENSIVE CARE UNIT(NICU) 1 (0.40%)
    NICU 4 (1.59%)
    NICU AND OPD 1 (0.40%)
    NURSERY, PAEDIATRIC OPD,EMERGENCY AND WARD 1 (0.40%)
    OBSTERIC AND GYNAECOLOGY 1 (0.40%)
    OBSTETRICS 1 (0.40%)
    OBSTETRICS AND GYNAECOLOGY 1 (0.40%)
    OBSTETRICS AND GYNECOLOGICAL 1 (0.40%)
    OBSTETRICS AND GYNECOLOGY 2 (0.80%)
    OCCUPATIONAL HEALTH 1 (0.40%)
    ORTHOPAEDICS 1 (0.40%)
    OUT PATIENT DEPARTMENT OF A PAEDIATRIC UNIT 3 (1.20%)
    OUT PATIENT DEPARTMENT OF AN ADULT UNIT 10 (3.98%)
    PAEDIATRICS DEPARTMENT 1 (0.40%)
    PICU 1 (0.40%)
    PLASTIC SURGERY 2 (0.80%)
    PUBLIC HEALTH 3 (1.20%)
    RADIOLOGY (IMAGING) DEPARTMENT 1 (0.40%)
    RADIOLOGY DEPARTMENT 1 (0.40%)
    SURGERY DEPARTMENT 1 (0.40%)
    THEATRE AND ICU FOR BOTH ADULTS AND CHILDREN 1 (0.40%)
    THEATRE- ANAESTHESIA 1 (0.40%)
    THEATRES (MIXED ADULT AND PAEDIATRIC) 1 (0.40%)
    WE ALSO SEE ADULT AND CHILDREN AT THE ACCIDENT AND EMERGENCY UNIT 1 (0.40%)
    WHERE I WORK DEPENDS ON THE ROTATION I AM DOING 1 (0.40%)
    Unknown 3
Which of the following weight estimation methods are you familiar with?
    2n +8, where n is the patient's age. 1 (0.45%)
    Age based Formular 1 (0.45%)
    Age based estimation 1 (0.45%)
    Age based formula 7 (3.14%)
    Age bases formula 1 (0.45%)
    Age x 3 + 4 1 (0.45%)
    Argall formula 3 (1.35%)
    Argall formula, Parental weight estimate 1 (0.45%)
    Broselow tape 15 (6.73%)
    Broselow tape, 2x +8,3x +5 1 (0.45%)
    Broselow tape, Argall formula 1 (0.45%)
    Broselow tape, Mercy Tape/Method 1 (0.45%)
    Broselow tape, Nelson's formula 2 (0.90%)
    Broselow tape, Nelson's formula, Parental weight estimate 1 (0.45%)
    Broselow tape, New Advanced Paediatric Life Support (APLS) formula 4 (1.79%)
    Broselow tape, New Advanced Paediatric Life Support (APLS) formula, Mercy Tape/Method, 2xage +8 1 (0.45%)
    Broselow tape, New Advanced Paediatric Life Support (APLS) formula, Nelson's formula, Parental weight estimate 1 (0.45%)
    Broselow tape, New Advanced Paediatric Life Support (APLS) formula, Nelson's formula, Parental weight estimate, Mercy Tape/Method 1 (0.45%)
    Broselow tape, New Advanced Paediatric Life Support (APLS) formula, Parental weight estimate 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula 6 (2.69%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, Luscombe and Owen formula 2 (0.90%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, Nelson's formula 2 (0.90%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula 5 (2.24%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Argall formula 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Argall formula, Luscombe and Owen formula, Nelson's formula, Chinese age weight rule (CAWR), Original Paediatric Advanced Weight Predication in the Emergency Room (PAWPER) TAPE, Mercy Tape/Method 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Mercy Tape/Method 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Original Paediatric Advanced Weight Predication in the Emergency Room (PAWPER) TAPE, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large (PAWPER-XL) TAPE, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC) 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large (PAWPER-XL) TAPE, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC) 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Parental weight estimate 3 (1.35%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Rwanda rule, Nelson's formula, Parental weight estimate, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large (PAWPER-XL) TAPE, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC), Mercy Tape/Method 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, Parental weight estimate 1 (0.45%)
    Broselow tape, Old Advanced Paediatric Life Support (APLS) formula, Parental weight estimate, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC), Mercy Tape/Method 1 (0.45%)
    Broselow tape, Original Paediatric Advanced Weight Predication in the Emergency Room (PAWPER) TAPE, Mercy Tape/Method 1 (0.45%)
    Broselow tape, Parental weight estimate 2 (0.90%)
    Chinese age weight rule (CAWR) 4 (1.79%)
    Chinese age weight rule (CAWR), Parental weight estimate, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC) 1 (0.45%)
    Measurement on a weighing scale 1 (0.45%)
    Mercy Tape/Method 7 (3.14%)
    Michigan formula 1 (0.45%)
    Michigan formula, Nelson's formula 1 (0.45%)
    Michigan formula, Nelson's formula, Chinese age weight rule (CAWR) 1 (0.45%)
    Michigan formula, Parental weight estimate 1 (0.45%)
    Michigan formula, Rwanda rule, Nelson's formula 1 (0.45%)
    Nelson's formula 18 (8.07%)
    Nelson's formula, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC) 1 (0.45%)
    Nelson's formula, Parental weight estimate 3 (1.35%)
    New Advanced Paediatric Life Support (APLS) formula 21 (9.42%)
    New Advanced Paediatric Life Support (APLS) formula, Parental weight estimate 1 (0.45%)
    None 5 (2.24%)
    None of the above 1 (0.45%)
    Not sure of the name by I use the age based formula 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula 10 (4.48%)
    Old Advanced Paediatric Life Support (APLS) formula, Argall formula 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, Argall formula, Parental weight estimate 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, Best guess formula, Weech's formula, simple finger method. 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, Nelson's formula 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula 2 (0.90%)
    Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Best Guess 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Luscombe and Owen formula 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Nelson's formula, Parental weight estimate 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Parental weight estimate 3 (1.35%)
    Old Advanced Paediatric Life Support (APLS) formula, New Advanced Paediatric Life Support (APLS) formula, Parental weight estimate, Original Paediatric Advanced Weight Predication in the Emergency Room (PAWPER) TAPE 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, Original Paediatric Advanced Weight Predication in the Emergency Room (PAWPER) TAPE 1 (0.45%)
    Old Advanced Paediatric Life Support (APLS) formula, Parental weight estimate 1 (0.45%)
    Original Paediatric Advanced Weight Predication in the Emergency Room (PAWPER) TAPE 5 (2.24%)
    Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large (PAWPER-XL) TAPE 2 (0.90%)
    Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC) 7 (3.14%)
    Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC), Mercy Tape/Method 1 (0.45%)
    Parental weight estimate 27 (12.1%)
    Parental weight estimate, Mercy Tape/Method 1 (0.45%)
    Parental weight estimate, Original Paediatric Advanced Weight Predication in the Emergency Room (PAWPER) TAPE 1 (0.45%)
    Parental weight estimate, Paediatric Advanced Weight Prediction in the Emergency Room, Extra Long, Extra Large - Mid Arm Circumference (PAWPER -XL - MAC) 2 (0.90%)
    Phone app 1 (0.45%)
    Phone application 1 (0.45%)
    Rwanda rule, Nelson's formula 1 (0.45%)
    Scale 1 (0.45%)
    Weighing scale 2 (0.90%)
    age based formula 1 (0.45%)
    annual weight increase 1 (0.45%)
    none 1 (0.45%)
    Unknown 31
Which of these weight estimation methods do you have ACCESS to?
    Age based formula 111 (46.8%)
    Age based formula, Parental weight estimate 22 (9.28%)
    Age based formula, Parental weight estimate, Phone application 15 (6.33%)
    Age based formula, Phone application 14 (5.91%)
    Age based formula, Weighing scale 1 (0.42%)
    Age x 3 + 4 1 (0.42%)
    Age×2 + 8 = weight in kg 1 (0.42%)
    Broselow tape 5 (2.11%)
    Broselow tape, Age based formula 11 (4.64%)
    Broselow tape, Age based formula, Parental weight estimate 2 (0.84%)
    Broselow tape, Age based formula, Parental weight estimate, Phone application 6 (2.53%)
    Broselow tape, Age based formula, Phone application 1 (0.42%)
    Broselow tape, PAWPER tape, Age based formula 1 (0.42%)
    Broselow tape, Phone application 1 (0.42%)
    GG 1 (0.42%)
    Measurement on a weighing scale 1 (0.42%)
    Mercy tape 1 (0.42%)
    Mercy tape, Age based formula, Parental weight estimate, Phone application 1 (0.42%)
    Nil 1 (0.42%)
    None 3 (1.27%)
    None of the above 1 (0.42%)
    PAWPER tape 1 (0.42%)
    PAWPER tape, Age based formula 1 (0.42%)
    Parental weight estimate 11 (4.64%)
    Parental weight estimate, Phone application 1 (0.42%)
    Phone application 17 (7.17%)
    Scale 1 (0.42%)
    Weighing scale 3 (1.27%)
    none 1 (0.42%)
    Unknown 17
Which of these weight estimation methods do you USE in your practice? (select as many that apply)
    2n + 8 1 (0.41%)
    Age x 3 + 4 1 (0.41%)
    Age-based formula 97 (40.2%)
    Age-based formula, 1 (0.41%)
    Age-based formula, Actual weight 1 (0.41%)
    Age-based formula, Phone app 13 (5.39%)
    Age-based formula, Weighing scale 1 (0.41%)
    Broselow tape 6 (2.49%)
    Broselow tape, Age-based formula 8 (3.32%)
    Broselow tape, Age-based formula, Phone app 2 (0.83%)
    Broselow tape, Mercy tape/Method, Age-based formula 1 (0.41%)
    Broselow tape, Parental weight estimate, Age-based formula 1 (0.41%)
    Broselow tape, Parental weight estimate, Age-based formula, Phone app 3 (1.24%)
    Broselow tape, Parental weight estimate, Visual weight estimation, Age-based formula, Phone app 1 (0.41%)
    Broselow tape, Phone app 1 (0.41%)
    Broselow tape, Visual weight estimation, Age-based formula 2 (0.83%)
    Mercy tape/Method 2 (0.83%)
    Mercy tape/Method, Age-based formula 1 (0.41%)
    Mercy tape/Method, Age-based formula, Phone app 1 (0.41%)
    Mercy tape/Method, Visual weight estimation, Age-based formula 1 (0.41%)
    No 1 (0.41%)
    None 1 (0.41%)
    PAWPER tape, Age-based formula 1 (0.41%)
    PAWPER tape, Parental weight estimate, Age-based formula, Phone app 1 (0.41%)
    PAWPER tape, Visual weight estimation 2 (0.83%)
    Parental weight estimate 5 (2.07%)
    Parental weight estimate, Age-based formula 16 (6.64%)
    Parental weight estimate, Age-based formula, Phone app 7 (2.90%)
    Parental weight estimate, Phone app 1 (0.41%)
    Parental weight estimate, Visual weight estimation 2 (0.83%)
    Parental weight estimate, Visual weight estimation, Age-based formula 7 (2.90%)
    Parental weight estimate, Visual weight estimation, Age-based formula, Phone app 4 (1.66%)
    Phone app 9 (3.73%)
    Scale 1 (0.41%)
    Visual weight estimation 9 (3.73%)
    Visual weight estimation, Age-based formula 18 (7.47%)
    Visual weight estimation, Age-based formula, Phone app 7 (2.90%)
    Visual weight estimation, Calibrated weight scale 1 (0.41%)
    Weighing scale 3 (1.24%)
    Unknown 13
Which is your PREFERRED method of weight estimation?(select one)
    Age-based formula 170 (70.5%)
    Broselow tape 16 (6.64%)
    Broselow tape, Age-based formula 1 (0.41%)
    Broselow tape, PAWPER tape 1 (0.41%)
    Broselow tape, Parental weight estimate, Visual weight estimation, Age-based formula 1 (0.41%)
    Mercy tape/Method 3 (1.24%)
    Mercy tape/Method, Age-based formula 1 (0.41%)
    PAWPER tape, Parental weight estimate 1 (0.41%)
    PAWPER tape, Visual weight estimation 1 (0.41%)
    Parental weight estimate 8 (3.32%)
    Parental weight estimate, Age-based formula 10 (4.15%)
    Parental weight estimate, Visual weight estimation, Age-based formula 2 (0.83%)
    Visual weight estimation 22 (9.13%)
    Visual weight estimation, Age-based formula 4 (1.66%)
    Unknown 13
What is the REASON for your choice of preferred method?
    Accuracy 14 (5.83%)
    Convenient 111 (46.3%)
    Easily available 55 (22.9%)
    That is all i have available 12 (5.00%)
    That is the only method of weight estimation i know 47 (19.6%)
    Weighing the child is my preferred. If it's impossible in an emergency situation, I combine age based formula with the most recent weight checked and visual estimation. 1 (0.42%)
    Unknown 14
Do you use or have you ever used an age-based weight estimation formula? 210 (86.8%)
    Unknown 12
Which of the age-based formulae have you ever used?
    2 x (age + 4) 1 (0.43%)
    Age x 3 + 4 1 (0.43%)
    Chimdren 1-2 months: (n-10 x 30g) + birth weight, n= days. For children 3-12 months: (n-8)/2; n=months; For children 1-5 years: 2n+8; n=years; For children >6years: (7n-5)/2; n=year 1 (0.43%)
    Infants < 12 months: weight (kg) = (age in months + 9) / 2 Children aged 1-5 years: weight (kg) = 2 X (age in years + 5) children 5-14 years: weight (kg) = 4 X (age in years 25 (10.6%)
    Non 1 (0.43%)
    None 2 (0.85%)
    None, always guess 1 (0.43%)
    Weight (kg) = (age x 2) + 8 118 (50.2%)
    Weight (kg) = (age x 2) + 8, Infants < 12 months: weight (kg) = (age in months + 9) / 2 Children aged 1-5 years: weight (kg) = 2 X (age in years + 5) children 5-14 years: weight (kg) = 4 X (age in years 7 (2.98%)
    Weight (kg) = (age x 2) + 8, Infants < 12 months: weight (kg) = (age in months + 9) / 2 Children aged 1-5 years: weight (kg) = 2 X (age in years + 5) children 5-14 years: weight (kg) = 4 X (age in years, weight (kg) = (age in months + 9)/2, for children aged 3 to 12 months, weight (kg) = 2 x (age in years + 4) for children aged 1 to 6 years, weight (kg) = (7z -5))/2 for children aged 7 to 12 years and z = age in years 4 (1.70%)
    Weight (kg) = (age x 2) + 8, None 1 (0.43%)
    Weight (kg) = (age x 2) + 8, Weight (kg) = (age x 3) + 7 30 (12.8%)
    Weight (kg) = (age x 2) + 8, Weight (kg) = (age x 3) + 7, Infants < 12 months: weight (kg) = (age in months + 9) / 2 Children aged 1-5 years: weight (kg) = 2 X (age in years + 5) children 5-14 years: weight (kg) = 4 X (age in years 10 (4.26%)
    Weight (kg) = (age x 2) + 8, Weight (kg) = (age x 3) + 7, Infants < 12 months: weight (kg) = (age in months + 9) / 2 Children aged 1-5 years: weight (kg) = 2 X (age in years + 5) children 5-14 years: weight (kg) = 4 X (age in years, weight (kg) = (age in months + 9)/2, for children aged 3 to 12 months, weight (kg) = 2 x (age in years + 4) for children aged 1 to 6 years, weight (kg) = (7z -5))/2 for children aged 7 to 12 years and z = age in years 5 (2.13%)
    Weight (kg) = (age x 2) + 8, Weight (kg) = (age x 3) + 7, weight (kg) = (age in months + 9)/2, for children aged 3 to 12 months, weight (kg) = 2 x (age in years + 4) for children aged 1 to 6 years, weight (kg) = (7z -5))/2 for children aged 7 to 12 years and z = age in years 2 (0.85%)
    Weight (kg) = (age x 2) + 8, weight (kg) = (age in months + 9)/2, for children aged 3 to 12 months, weight (kg) = 2 x (age in years + 4) for children aged 1 to 6 years, weight (kg) = (7z -5))/2 for children aged 7 to 12 years and z = age in years 3 (1.28%)
    Weight (kg) = (age x 3) + 7 12 (5.11%)
    Weight (kg) = (age x 3) + 7, Infants < 12 months: weight (kg) = (age in months + 9) / 2 Children aged 1-5 years: weight (kg) = 2 X (age in years + 5) children 5-14 years: weight (kg) = 4 X (age in years 1 (0.43%)
    Weight (kg) = (age x 3) + 7, weight (kg) = (age in months + 9)/2, for children aged 3 to 12 months, weight (kg) = 2 x (age in years + 4) for children aged 1 to 6 years, weight (kg) = (7z -5))/2 for children aged 7 to 12 years and z = age in years 1 (0.43%)
    weight (kg) = (age in months + 9)/2, for children aged 3 to 12 months, weight (kg) = 2 x (age in years + 4) for children aged 1 to 6 years, weight (kg) = (7z -5))/2 for children aged 7 to 12 years and z = age in years 9 (3.83%)
    Unknown 19
Preferred method accurate
    Don't know 63 (25.5%)
    No 28 (11.3%)
    Yes 156 (63.2%)
    Unknown 7
PM accuracy compared to others
    Don't know 128 (52.2%)
    Less accurate 34 (13.9%)
    More accurate 24 (9.80%)
    Same accuracy 59 (24.1%)
    Unknown 9
Preferred method scale
    Median (Q1, Q3) 7.00 (6.00, 8.00)
    Mean (SD) 6.72 (1.66)
    Min, Max 1.00, 10.00
    Unknown 8
Works in Public Sector 238 (93.7%)
Works in Private Sector 54 (21.3%)
Grade: Specialist/Consultant 92 (36.2%)
Grade: Medical/House Officer 104 (40.9%)
Grade: Senior/Principal Medical Officer 55 (21.7%)
Department: Adult 169 (66.5%)
Department: Pediatric 197 (77.6%)
Department: Emergency 83 (32.7%)
Familiar Method: Broselow 58 (22.8%)
Familiar Method: Argall 9 (3.54%)
Familiar Method: Nelson 37 (14.6%)
Familiar Method: PAWPER-XL-MAC 16 (6.30%)
Familiar Method: PAWPER-XL 5 (1.97%)
Familiar Method: PAWPER 28 (11.0%)
Familiar Method: Mercy Tape 17 (6.69%)
Familiar Method: Luscombe 4 (1.57%)
Familiar Method: Parental Estimation 57 (22.4%)
Familiar Method: Visual 2 (0.79%)
Familiar Method: APLS (New) 53 (20.9%)
Familiar Method: APLS (Old) 51 (20.1%)
Familiar Method: Chinese 7 (2.76%)
Familiar Method: Michigan 5 (1.97%)
Familiar Method: Phone App 2 (0.79%)
Familiar Method: Age-Based 16 (6.30%)
Familiar Method: None 43 (16.9%)
Familiar Method: Any Age-Based 137 (53.9%)
Familiar Method: Any PAWPER 28 (11.0%)
Access Method: Age Based 188 (74.0%)
Access Method: Parental Estimation 58 (22.8%)
Access Method: Phone App. 56 (22.0%)
Access Method: Broselow 27 (10.6%)
Access Method: PAWPER Tape 3 (1.18%)
Access Method: Mercy Tape 2 (0.79%)
Access Method: None 29 (11.4%)
Used Method: Age Based 196 (77.2%)
Used Method: Parental Estimation 48 (18.9%)
Used Method: Phone App. 50 (19.7%)
Used Method: Broselow 25 (9.84%)
Used Method: Visual 54 (21.3%)
Used Method: PAWPER Tape 4 (1.57%)
Used Method: Mercy Tape 6 (2.36%)
Used Method: None 20 (7.87%)
Preferred Method: Age Based 189 (74.4%)
Preferred Method: Parental Estimation 22 (8.66%)
Preferred Method: Broselow 19 (7.48%)
Preferred Method: Visual 30 (11.8%)
Preferred Method: PAWPER Tape 3 (1.18%)
Preferred Method: Mercy Tape 4 (1.57%)
Preferred Method: None 13 (5.12%)
Reaosn for Method choice
    Accuracy 14 (6.17%)
    Convenient 111 (48.9%)
    Easily available 55 (24.2%)
    That is the only method of weight estimation i know 47 (20.7%)
    Unknown 27
Grade of Doctor
    Medical officer 104 (41.4%)
    Senior Medical Officer 55 (21.9%)
    Specialist 92 (36.7%)
    Unknown 3
Appropriate method used 34 (13.4%)
1 n (%)

Tables

Domain 1 — Respondent characteristics

A general overview of the data relevant to the manuscript - Age, sex, professional grade, years of practice, department, sector and exposure to paediatric patients.

Show the code
gtsummary::reset_gtsummary_theme()
gtsummary::theme_gtsummary_compact()
Setting theme "Compact"
Show the code
df_wgtest_clean |>
    select(
        ageyrs, sex, grade2, sector,  encounter_pedics, years_practiced,  
        dept_adult, dept_child, dept_emergency, fm_broselow:fm_pawper2) |>
    gtsummary::tbl_summary(
        by = grade2, 
        statistic = gtsummary::all_categorical()~"{n}({p})", 
        missing_text = "Missing") |>
    gtsummary::bold_labels() |>
    gtsummary::add_overall(last = TRUE)
3 missing rows in the "grade2" column have been removed.
Characteristic Medical officer
N = 1041
Senior Medical Officer
N = 551
Specialist
N = 921
Overall
N = 2511
Age (years) 30.0 (28.5, 32.5) 35.0 (33.0, 38.5) 38.0 (36.0, 41.0) 34.0 (31.0, 38.0)
    Missing 4 3 2 9
Gender



    Female 46(44) 23(42) 44(48) 113(45)
    Male 58(56) 32(58) 48(52) 138(55)
Sector of Work



    Both 16(16) 7(13) 19(21) 42(17)
    Private 5(4.9) 1(1.8) 6(6.5) 12(4.8)
    Public 82(80) 47(85) 67(73) 196(78)
    Missing 1 0 0 1
Encounter with padiatric patients?



    Always 48(46) 19(35) 42(46) 109(43)
    Often 38(37) 24(44) 28(30) 90(36)
    Occasionally 18(17) 12(22) 20(22) 50(20)
    Never 0(0) 0(0) 2(2.2) 2(0.8)
Years practiced medicine 3.0 (2.0, 4.0) 7.0 (6.0, 9.0) 12.0 (10.0, 15.0) 7.0 (3.0, 11.0)
    Missing 1 0 3 4
Department: Adult 66(63) 46(84) 57(62) 169(67)
Department: Pediatric 82(79) 43(78) 72(78) 197(78)
Department: Emergency 34(33) 18(33) 31(34) 83(33)
Familiar Method: Broselow 13(13) 10(18) 35(38) 58(23)
Familiar Method: Argall 3(2.9) 1(1.8) 5(5.4) 9(3.6)
Familiar Method: Nelson 19(18) 5(9.1) 13(14) 37(15)
Familiar Method: PAWPER-XL-MAC 7(6.7) 5(9.1) 4(4.3) 16(6.4)
Familiar Method: PAWPER-XL 4(3.8) 1(1.8) 0(0) 5(2.0)
Familiar Method: PAWPER 12(12) 9(16) 7(7.6) 28(11)
Familiar Method: Mercy Tape 5(4.8) 3(5.5) 9(9.8) 17(6.8)
Familiar Method: Luscombe 0(0) 1(1.8) 3(3.3) 4(1.6)
Familiar Method: Parental Estimation 26(25) 12(22) 19(21) 57(23)
Familiar Method: Visual 1(1.0) 0(0) 1(1.1) 2(0.8)
Familiar Method: APLS (New) 21(20) 6(11) 26(28) 53(21)
Familiar Method: APLS (Old) 16(15) 8(15) 27(29) 51(20)
Familiar Method: Chinese 1(1.0) 1(1.8) 5(5.4) 7(2.8)
Familiar Method: Michigan 3(2.9) 1(1.8) 1(1.1) 5(2.0)
Familiar Method: Phone App 1(1.0) 1(1.8) 0(0) 2(0.8)
Familiar Method: Age-Based 6(5.8) 6(11) 4(4.3) 16(6.4)
Familiar Method: None 12(12) 12(22) 16(17) 40(16)
Familiar Method: Any Age-Based 57(55) 24(44) 56(61) 137(55)
Familiar Method: Any PAWPER 12(12) 9(16) 7(7.6) 28(11)
1 Median (Q1, Q3); n(%)

Domain 2 - Familiarity, availability and Use

Comparing the familiarity, availability and use of the various methods. Gives an idea which methods the doctors are familiar with, have access to and use. Familiar but no access means a unavailability. Access without use may imply training neeeded.

Show the code
df_temp_long <- 
    df_wgtest_clean |>
    select(
        fm_agebased2, fm_parental, fm_phone, fm_broselow, 
        fm_pawper, fm_mercy, fm_visual, starts_with("um_"), 
        starts_with("am_")) |>
    rename(fm_agebased = fm_agebased2) |>
    pivot_longer(cols = fm_agebased:am_none) |>
    separate_wider_delim(
        col = name, delim = "_", names = c("grp", "mthd")) 

df_temp_wide <- 
    df_temp_long |>
     pivot_wider(values_from = value, names_from = c(mthd)) |>
    unnest()
Warning: Values from `value` are not uniquely identified; output will contain list-cols.
• Use `values_fn = list` to suppress this warning.
• Use `values_fn = {summary_fun}` to summarise duplicates.
• Use the following dplyr code to identify duplicates.
  {data} |>
  dplyr::summarise(n = dplyr::n(), .by = c(grp, mthd)) |>
  dplyr::filter(n > 1L)
Warning: `cols` is now required when using `unnest()`.
ℹ Please use `cols = c(agebased, parental, phone, broselow, pawper, mercy,
  visual, none)`.
Show the code
df_temp_wide |>
    filter(grp %in% c("fm", "am")) |>
    mutate(grp = factor(grp, levels = c("fm","am")))|>
    gtsummary::tbl_summary(
        by = grp, 
        include =  -none) |>
    gtsummary::add_difference()
The following errors were returned during `add_difference()`:
✖ For variable `visual` (`grp`) and "estimate", "statistic", "p.value",
  "parameter", "conf.low", and "conf.high" statistics: The `by` column must
  have exactly 2 levels. The levels are fm
Characteristic fm
N = 2541
am
N = 2541
Difference2 95% CI2 p-value2
agebased 137 (54%) 188 (74%) -20% -29%, -12% <0.001
parental 57 (22%) 58 (23%) -0.39% -8.1%, 7.3% >0.9
phone 2 (0.8%) 56 (22%) -21% -27%, -16% <0.001
broselow 58 (23%) 27 (11%) 12% 5.4%, 19% <0.001
pawper 28 (11%) 3 (1.2%) 9.8% 5.4%, 14% <0.001
mercy 17 (6.7%) 2 (0.8%) 5.9% 2.3%, 9.6% 0.001
visual 2 (0.8%) 0 (NA%)


    Unknown 0 254


1 n (%)
2 2-sample test for equality of proportions with continuity correction; NA
Abbreviation: CI = Confidence Interval
Show the code
df_temp_wide |>
    filter(grp %in% c("am", "um")) |>
    mutate(grp = factor(grp, levels = c("am","um")))|>
    gtsummary::tbl_summary(
        by = grp, 
        include =  -none) |>
    gtsummary::add_difference()
The following errors were returned during `add_difference()`:
✖ For variable `visual` (`grp`) and "estimate", "statistic", "p.value",
  "parameter", "conf.low", and "conf.high" statistics: The `by` column must
  have exactly 2 levels. The levels are um
The following warnings were returned during `add_difference()`:
! For variable `mercy` (`grp`) and "estimate", "statistic", "p.value",
  "parameter", "conf.low", and "conf.high" statistics: Chi-squared
  approximation may be incorrect
! For variable `pawper` (`grp`) and "estimate", "statistic", "p.value",
  "parameter", "conf.low", and "conf.high" statistics: Chi-squared
  approximation may be incorrect
Characteristic am
N = 2541
um
N = 2541
Difference2 95% CI2 p-value2
agebased 188 (74%) 196 (77%) -3.1% -11%, 4.7% 0.5
parental 58 (23%) 48 (19%) 3.9% -3.5%, 11% 0.3
phone 56 (22%) 50 (20%) 2.4% -5.1%, 9.8% 0.6
broselow 27 (11%) 25 (9.8%) 0.79% -4.9%, 6.5% 0.9
pawper 3 (1.2%) 4 (1.6%) -0.39% -2.8%, 2.0% >0.9
mercy 2 (0.8%) 6 (2.4%) -1.6% -4.1%, 0.98% 0.3
visual 0 (NA%) 54 (21%)


    Unknown 254 0


1 n (%)
2 2-sample test for equality of proportions with continuity correction; NA
Abbreviation: CI = Confidence Interval
Show the code
df_temp_long |>
    filter(mthd != "none") |> 
    group_by(grp, mthd) |>
    mutate(
        value = value == "Yes",
        grp = factor(
            grp, 
            levels = c("fm","am", "um"), 
            labels = c("Familiar", "Access", "Used")))|>
    reframe(
        across(
            value, ~epiDisplay::ci.binomial(.x))) |>
    unnest(value) |>
    filter(grp != "pm") |>
    ggplot(
        aes(x = mthd, y = probability, fill = grp)) +
    geom_bar(
        stat = "identity", 
        position=position_dodge(), 
        colour = "black", 
        alpha = 0.5)+
    geom_errorbar(
        aes(ymin=exact.lower95ci, ymax=exact.upper95ci), 
        width=.2, position=position_dodge(.9)) +
    theme(
        legend.position = "top", 
        legend.title = "Type")+
    labs(title="Plot of ......", x=NULL, y = "Proportion")+
    scale_fill_brewer(palette="Dark2") +
    coord_flip()+
    theme_bw()

Domain 3 - Actual practice and preference

Methods currently used, frequency of use, preferred methods and reasons for preference.

Show the code
df_wgtest_clean |>
    select(pm_agebased, pm_parental, pm_broselow, pm_pawper, 
           pm_mercy, pm_visual, um_agebased, um_parental, 
           um_broselow, um_pawper, um_mercy, um_visual, 
           reason_method2) |> 
    gtsummary::tbl_summary(by = reason_method2, percent = "row")
27 missing rows in the "reason_method2" column have been removed.
Characteristic Accuracy
N = 141
Convenient
N = 1111
Easily available
N = 551
That is the only method of weight estimation i know
N = 471
Preferred Method: Age Based 11 (6.3%) 85 (49%) 39 (22%) 39 (22%)
Preferred Method: Parental Estimation 1 (4.8%) 8 (38%) 8 (38%) 4 (19%)
Preferred Method: Broselow 1 (5.3%) 11 (58%) 6 (32%) 1 (5.3%)
Preferred Method: PAWPER Tape 0 (0%) 2 (67%) 1 (33%) 0 (0%)
Preferred Method: Mercy Tape 0 (0%) 0 (0%) 3 (75%) 1 (25%)
Preferred Method: Visual 2 (7.7%) 13 (50%) 8 (31%) 3 (12%)
Used Method: Age Based 13 (7.2%) 89 (49%) 43 (24%) 36 (20%)
Used Method: Parental Estimation 5 (11%) 22 (49%) 14 (31%) 4 (8.9%)
Used Method: Broselow 3 (13%) 14 (58%) 7 (29%) 0 (0%)
Used Method: PAWPER Tape 0 (0%) 3 (75%) 1 (25%) 0 (0%)
Used Method: Mercy Tape 1 (17%) 1 (17%) 3 (50%) 1 (17%)
Used Method: Visual 1 (1.9%) 34 (65%) 11 (21%) 6 (12%)
1 n (%)

Domain 4 - Prefered method and Perceived accuracy

Doctors’ judgements of accuracy and reliability, how they assess accuracy, and confidence scores.

Show the code
aged <- 
    df_wgtest_clean |>
    select(
        pm_agebased, method_accurate, assess_accuracy, method_scale) |> 
    gtsummary::tbl_summary(by = pm_agebased) |> 
    gtsummary::bold_labels() |>
    gtsummary::add_p()

parent <- 
    df_wgtest_clean |>
    select(
        pm_parental, method_accurate, assess_accuracy, method_scale) |> 
    gtsummary::tbl_summary(by = pm_parental) |> 
    gtsummary::bold_labels()|>
    gtsummary::add_p()

bros <- 
    df_wgtest_clean |>
    select(
    pm_broselow, method_accurate, assess_accuracy, method_scale) |> 
    gtsummary::tbl_summary(by = pm_broselow) |> 
    gtsummary::bold_labels()|>
    gtsummary::add_p()

paw <- 
    df_wgtest_clean |>
    select(
        pm_pawper, method_accurate, assess_accuracy, method_scale) |> 
    gtsummary::tbl_summary(by = pm_pawper) |> 
    gtsummary::bold_labels()|>
    gtsummary::add_p()

mer <- 
    df_wgtest_clean |>
    select(
        pm_mercy, method_accurate, assess_accuracy, method_scale) |> 
    gtsummary::tbl_summary(by = pm_mercy) |> 
    gtsummary::bold_labels()|>
    gtsummary::add_p()

visu <- 
    df_wgtest_clean |>
    select(
        pm_visual, method_accurate, assess_accuracy, method_scale) |> 
    gtsummary::tbl_summary(by = pm_visual) |> 
    gtsummary::bold_labels()|>
    gtsummary::add_p()

gtsummary::tbl_merge(
    tbls = list(aged, parent, bros, paw, mer, visu), 
    tab_spanner = c(
        "Age Based", "Parental", "Broselow", "Pawper", 
        "Mercy", "Visual"))
Characteristic
Age Based
Parental
Broselow
Pawper
Mercy
Visual
No
N = 651
Yes
N = 1891
p-value2 No
N = 2321
Yes
N = 221
p-value3 No
N = 2351
Yes
N = 191
p-value3 No
N = 2511
Yes
N = 31
p-value3 No
N = 2501
Yes
N = 41
p-value3 No
N = 2241
Yes
N = 301
p-value3
Preferred method accurate

0.10

0.072

0.8

0.4

0.3

0.021
    Don't know 15 (26%) 48 (25%)
61 (27%) 2 (9.1%)
59 (26%) 4 (22%)
63 (26%) 0 (0%)
63 (26%) 0 (0%)
55 (25%) 8 (27%)
    No 11 (19%) 17 (9.0%)
27 (12%) 1 (4.5%)
27 (12%) 1 (5.6%)
27 (11%) 1 (33%)
27 (11%) 1 (25%)
20 (9.2%) 8 (27%)
    Yes 32 (55%) 124 (66%)
137 (61%) 19 (86%)
143 (62%) 13 (72%)
154 (63%) 2 (67%)
153 (63%) 3 (75%)
142 (65%) 14 (47%)
    Unknown 7 0
7 0
6 1
7 0
7 0
7 0
PM accuracy compared to others

0.080

0.001

0.7

0.047

0.4

0.005
    Don't know 26 (45%) 102 (55%)
123 (55%) 5 (23%)
120 (53%) 8 (44%)
128 (53%) 0 (0%)
127 (53%) 1 (25%)
116 (54%) 12 (40%)
    Less accurate 14 (24%) 20 (11%)
31 (14%) 3 (14%)
32 (14%) 2 (11%)
32 (13%) 2 (67%)
33 (14%) 1 (25%)
23 (11%) 11 (37%)
    More accurate 5 (8.6%) 19 (10%)
23 (10%) 1 (4.5%)
21 (9.3%) 3 (17%)
24 (9.9%) 0 (0%)
24 (10.0%) 0 (0%)
23 (11%) 1 (3.3%)
    Same accuracy 13 (22%) 46 (25%)
46 (21%) 13 (59%)
54 (24%) 5 (28%)
58 (24%) 1 (33%)
57 (24%) 2 (50%)
53 (25%) 6 (20%)
    Unknown 7 2
9 0
8 1
9 0
9 0
9 0
Preferred method scale 6.00 (5.00, 8.00) 7.00 (6.00, 8.00) 0.011 7.00 (6.00, 8.00) 7.00 (6.00, 8.00) 0.9 7.00 (6.00, 8.00) 7.50 (5.00, 8.00) 0.5 7.00 (6.00, 8.00) 6.00 (4.00, 8.00) 0.5 7.00 (6.00, 8.00) 7.00 (6.50, 7.50) 0.8 7.00 (6.00, 8.00) 6.00 (5.00, 7.00) 0.033
    Unknown 8 0
8 0
7 1
8 0
8 0
7 1
1 n (%); Median (Q1, Q3)
2 Pearson’s Chi-squared test; Wilcoxon rank sum test
3 Fisher’s exact test; Wilcoxon rank sum test

Domain 5 - Factors associated with practice

Whether professional experience, clinical setting, paediatric exposure and access are associated with the use of selected methods.

Show the code
tbl_uni <-
    df_wgtest_clean |> 
    select(good_method, sex, ageyrs, years_practiced, dept_adult, 
           dept_child, dept_emergency, 
           grade_specialist, grade_mo, grade_smo, grade2 ) |>
        gtsummary::tbl_uvregression(
            y = good_method,
#            include = c(age, sex, residence, nutritional_status),
            method = glm,
            method.args = list(family = binomial(link = "logit")),
            exponentiate = TRUE,
            pvalue_fun = gtsummary::label_style_pvalue(digits = 3)) %>%
    gtsummary::add_global_p() %>%
    gtsummary::add_nevent() %>%
    gtsummary::bold_labels() |> 
    gtsummary::bold_p()

tbl_uni
Characteristic N Event N OR 95% CI p-value
Gender 251 34

0.216
    Female

— —
    Male

1.60 0.76, 3.48
Age (years) 242 31 1.03 0.96, 1.09 0.390
Years practiced medicine 247 34 1.04 0.98, 1.11 0.190
Department: Adult 254 34

0.345
    No

— —
    Yes

1.47 0.67, 3.47
Department: Pediatric 254 34

0.552
    No

— —
    Yes

0.78 0.35, 1.86
Department: Emergency 254 34

0.134
    No

— —
    Yes

1.76 0.84, 3.67
Grade: Specialist/Consultant 254 34

0.164
    No

— —
    Yes

1.68 0.81, 3.50
Grade: Medical/House Officer 254 34

0.022
    No

— —
    Yes

0.40 0.16, 0.88
Grade: Senior/Principal Medical Officer 254 34

0.253
    No

— —
    Yes

1.62 0.70, 3.55
Grade of Doctor 251 34

0.063
    Medical officer

— —
    Senior Medical Officer

2.67 0.99, 7.43
    Specialist

2.53 1.05, 6.52
Abbreviations: CI = Confidence Interval, OR = Odds Ratio