Skip to content

PCCC subcondition summary returns NaN percentages when no conditions are flagged #27

@dewittpe

Description

@dewittpe
library(medicalcoder)
packageVersion("medicalcoder")
#> [1] '0.7.0.9000'

# `summary(pccc)` returns rows for each condition/subcondition where 
# `percent_of_those_with_condition` is `NaN` (divide by zero) because `count` is 0 
# for every condition in the cohort.

# SUGGESTED FIX:  When the condition isn’t flagged (count = 0), the denominator 
# is zero, so percent_of_those_with_condition should be NA rather than NaN. That 
# keeps “share of those with the condition” undefined when nobody has the condition, 
# while percent_of_cohort stays at 0. In practice: if counts[cnd] == 0, set 
# percent_of_those_with_condition to NA_real_; otherwise compute the percentage.


# Codes that do not map to PCCC conditions
df_none <- data.frame(
  patid = 1:3,
  icdv  = 10L,
  dx    = 1L,
  code  = c("XXX1", "XXX2", "XXX3")
)

pccc <- comorbidities(
  data          = df_none,
  icd.codes     = "code",
  id.vars       = "patid",
  icdv.var      = "icdv",
  dx.var        = "dx",
  method        = "pccc_v3.1",
  flag.method   = "current",
  poa           = 1L,
  subconditions = TRUE
)

summary(pccc)
#>          condition                                subcondition count
#> 1  congeni_genetic                                        <NA>     0
#> 2  congeni_genetic                    bone_and_joint_anomalies     0
#> 3  congeni_genetic                       chromosomal_anomalies     0
#> 4  congeni_genetic      diaphragm_and_abdominal_wall_anomalies     0
#> 5  congeni_genetic                  other_congenital_anomalies     0
#> 6              cvd                                        <NA>     0
#> 7              cvd                            cardiomyopathies     0
#> 8              cvd                         conduction_disorder     0
#> 9              cvd                   device_and_technology_use     0
#> 10             cvd                                dysrhythmias     0
#> 11             cvd                        endocardium_diseases     0
#> 12             cvd        heart_and_great_vessel_malformations     0
#> 13             cvd                                       other     0
#> 14             cvd                             transplantation     0
#> 15              gi                                        <NA>     0
#> 16              gi         chronic_liver_disease_and_cirrhosis     0
#> 17              gi                        congenital_anomalies     0
#> 18              gi                   device_and_technology_use     0
#> 19              gi                  inflammatory_bowel_disease     0
#> 20              gi                                       other     0
#> 21              gi                             transplantation     0
#> 22     hemato_immu                                        <NA>     0
#> 23     hemato_immu                   acquired_immunodeficiency     0
#> 24     hemato_immu                            aplastic_anemias     0
#> 25     hemato_immu                     coagulation_hemorrhagic     0
#> 26     hemato_immu       diffuse_diseases_of_connective_tissue     0
#> 27     hemato_immu                    hemophagocytic_syndromes     0
#> 28     hemato_immu                          hereditary_anemias     0
#> 29     hemato_immu                 hereditary_immunodeficiency     0
#> 30     hemato_immu                                  leukopenia     0
#> 31     hemato_immu                                       other     0
#> 32     hemato_immu polyarteritis_nodosa_and_related_conditions     0
#> 33     hemato_immu                                 sarcoidosis     0
#> 34     hemato_immu                             transplantation     0
#> 35      malignancy                                        <NA>     0
#> 36      malignancy                                   neoplasms     0
#> 37      malignancy                             transplantation     0
#> 38       metabolic                                        <NA>     0
#> 39       metabolic                       amino_acid_metabolism     0
#> 40       metabolic                     carbohydrate_metabolism     0
#> 41       metabolic                   device_and_technology_use     0
#> 42       metabolic                         endocrine_disorders     0
#> 43       metabolic                            lipid_metabolism     0
#> 44       metabolic                   other_metabolic_disorders     0
#> 45       metabolic                           storage_disorders     0
#> 46            misc                                        <NA>     0
#> 47            misc                   device_and_technology_use     0
#> 48            misc                             transplantation     0
#> 49        neonatal                                        <NA>     0
#> 50        neonatal                              birth_asphyxia     0
#> 51        neonatal                cerebral_hemorrhage_at_birth     0
#> 52        neonatal                          extreme_immaturity     0
#> 53        neonatal                          fetal_malnutrition     0
#> 54        neonatal             hypoxic_ischemic_encephalopathy     0
#> 55        neonatal                                       other     0
#> 56        neonatal                        respiratory_diseases     0
#> 57        neonatal                 spinal_cord_injury_at_birth     0
#> 58       neuromusc                                        <NA>     0
#> 59       neuromusc         brain_and_spinal_cord_malformations     0
#> 60       neuromusc               cns_degeneration_and_diseases     0
#> 61       neuromusc                   device_and_technology_use     0
#> 62       neuromusc                                    epilepsy     0
#> 63       neuromusc                    infantile_cerebral_palsy     0
#> 64       neuromusc                   intellectual_disabilities     0
#> 65       neuromusc                           movement_diseases     0
#> 66       neuromusc         muscular_dystrophies_and_myopathies     0
#> 67       neuromusc              occlusion_of_cerebral_arteries     0
#> 68       neuromusc                  other_neurologic_disorders     0
#> 69           renal                                        <NA>     0
#> 70           renal                    chronic_bladder_diseases     0
#> 71           renal                       chronic_renal_failure     0
#> 72           renal                        congenital_anomalies     0
#> 73           renal                   device_and_technology_use     0
#> 74           renal                                       other     0
#> 75           renal                             transplantation     0
#> 76     respiratory                                        <NA>     0
#> 77     respiratory                chronic_respiratory_diseases     0
#> 78     respiratory                             cystic_fibrosis     0
#> 79     respiratory                   device_and_technology_use     0
#> 80     respiratory                                       other     0
#> 81     respiratory                   respiratory_malformations     0
#> 82     respiratory                             transplantation     0
#>    percent_of_cohort percent_of_those_with_condition
#> 1                  0                              NA
#> 2                  0                             NaN
#> 3                  0                             NaN
#> 4                  0                             NaN
#> 5                  0                             NaN
#> 6                  0                              NA
#> 7                  0                             NaN
#> 8                  0                             NaN
#> 9                  0                             NaN
#> 10                 0                             NaN
#> 11                 0                             NaN
#> 12                 0                             NaN
#> 13                 0                             NaN
#> 14                 0                             NaN
#> 15                 0                              NA
#> 16                 0                             NaN
#> 17                 0                             NaN
#> 18                 0                             NaN
#> 19                 0                             NaN
#> 20                 0                             NaN
#> 21                 0                             NaN
#> 22                 0                              NA
#> 23                 0                             NaN
#> 24                 0                             NaN
#> 25                 0                             NaN
#> 26                 0                             NaN
#> 27                 0                             NaN
#> 28                 0                             NaN
#> 29                 0                             NaN
#> 30                 0                             NaN
#> 31                 0                             NaN
#> 32                 0                             NaN
#> 33                 0                             NaN
#> 34                 0                             NaN
#> 35                 0                              NA
#> 36                 0                             NaN
#> 37                 0                             NaN
#> 38                 0                              NA
#> 39                 0                             NaN
#> 40                 0                             NaN
#> 41                 0                             NaN
#> 42                 0                             NaN
#> 43                 0                             NaN
#> 44                 0                             NaN
#> 45                 0                             NaN
#> 46                 0                              NA
#> 47                 0                             NaN
#> 48                 0                             NaN
#> 49                 0                              NA
#> 50                 0                             NaN
#> 51                 0                             NaN
#> 52                 0                             NaN
#> 53                 0                             NaN
#> 54                 0                             NaN
#> 55                 0                             NaN
#> 56                 0                             NaN
#> 57                 0                             NaN
#> 58                 0                              NA
#> 59                 0                             NaN
#> 60                 0                             NaN
#> 61                 0                             NaN
#> 62                 0                             NaN
#> 63                 0                             NaN
#> 64                 0                             NaN
#> 65                 0                             NaN
#> 66                 0                             NaN
#> 67                 0                             NaN
#> 68                 0                             NaN
#> 69                 0                              NA
#> 70                 0                             NaN
#> 71                 0                             NaN
#> 72                 0                             NaN
#> 73                 0                             NaN
#> 74                 0                             NaN
#> 75                 0                             NaN
#> 76                 0                              NA
#> 77                 0                             NaN
#> 78                 0                             NaN
#> 79                 0                             NaN
#> 80                 0                             NaN
#> 81                 0                             NaN
#> 82                 0                             NaN

Created on 2025-12-17 with reprex v2.1.1

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions