Following on from my earlier post on creating a table of ICD codes in R, here is how I am currently counting these codes and storing the codes in a dataframe:

Firstly create a dataframe to store the results in:

**Counting Occurences:**

Then start to loop through your dataset with something similar to the following:

**Things to note:**

- Generally you will have multiple multiple columns in your data with the ICD codes in them, so you can add as many ‘hosp_codes’ as you have.
- Subsetting is easy, you can use substitute in “my.data[my.data$case==”Yes”, c(…” or equivalent so you are only counting within a subset of your subjects, here, within the cases for some outcome.
- The ‘paste’ command can be taken out, this is only in there as if you have a large data set you it might take some time to complete the count for each of the ’causes/sub chapter’ groupings, so it is good to be able to see where you are up to.
- The sub function within the apply statement. This strips the decimal place off each code recording so “F35.7”, “F35.06” and “F35.49” all become “F35” and are then able to be matched to our list with the “%in%” command.

**Counting Unique Hospitilisations:**

system.time( for(i in 1:length(icd_codes)) { hosp <- c( apply(my.data[ ,c("hosp_code_1","hosp_code_2")],2, 2, function(x) which(sub("..*","",x) %in% icd_codes[[i]])) , recursive=T) hosp_count[2,i] <- length(unique(hosp)) print(paste(i,"of",length(icd_codes),"complete")) }) row.names(hosp_count)[2] <- "Hosp count"

Created by Pretty R at inside-R.org

**What is the difference between occurrences and unique hospitilisations?**