как использовать regexpr для определения скорректированных данных в данных icd10 - PullRequest
0 голосов
/ 03 мая 2019

Я работаю с данными icd10 и хочу создать новые переменные, называемые сложностью, на основе шаблона "E1X.9X", используя регулярное выражение, но продолжаю получать сообщение об ошибке.Пожалуйста, помогите

dm_2$icd9_9code<- (E10.49, E11.51, E13.52, E13.9, E10.9, E11.21, E16.0)

dm_2$DM.complications<- "present"
dm_2$DM.complications[regexpr("^E\\d{2}.9$",dm_2$icd9_code)]<- "None"

# Error in dm_2$DM.complications[regexpr("^E\\d{2}.9", dm_2$icd9_code)] <- 
# "None" : only 0's may be mixed with negative subscripts

Я хочу

icd9_9code     complications
E10.49          present
E11.51          present
E13.52          present
E13.9           none
E10.9           none
E11.21          present

Ответы [ 2 ]

0 голосов
/ 05 мая 2019

Эта проблема уже решена.Пакет 'icd' R, который я и соавторы поддерживали в течение пяти лет, может сделать это.В частности, он использует стандартизированные наборы сопутствующих заболеваний, в том числе диабет с осложнениями, которые вы ищете, от AHRQ, оригинал Elixhauser, Charlson и т. Д.

Например, для ICD-10 AHRQ, вы можете увидеть коды для диабетас осложнениями здесь.Начиная с версии icd 4.0, они включают коды ICD-10 от ВОЗ и все годы ICD-10-CM.

icd::icd10_map_ahrq$DMcx

Чтобы использовать их, сначала просто возьмите кадр данных своего пациента и попробуйте:

library(icd)
pts <- data.frame(visit_id = c("encounter-1", "encounter-2", "encounter-3", 
"encounter-4", "encounter-5", "encounter-6"), icd10 = c("I70401", 
"E16", "I70.449", "E13.52", "I70.6", "E11.51"))
comorbid_ahrq(pts)
# and for diabetes with complications only:
comorbid_ahrq(pts)[, "DMcx"]

Или вы можете получить фрейм данных вместо матрицы следующим образом:

comorbid_ahrq(pts, return_df = TRUE)
# then you can do:
comorbid_ahrq(pts, return_df = TRUE)$DMcx

Если вы приведете пример исходных данных и вашей цели, я могу помочь вам больше.

0 голосов
/ 03 мая 2019

Похоже, в вашем коде есть несколько ошибок, я отмечу их в приведенном ниже коде:

Вы хотите начать с обертывания ваших кодов ICD в кавычки: "E13.9"

dm_2 <- data.frame(icd9_9code = c("E10.49", "E11.51", "E13.52", "E13.9", "E10.9", "E11.21", "E16.0"))

Далее давайте использовать grepl() для поиска конкретного шаблона ICD. Убедитесь, что вы применяете его к соответствующему столбцу, ваш код пытается использовать dm_2$icd9_code, а не dm_2$icd9_9code:

dm_2$DM.complications <- "present"
dm_2$DM.complications[grepl("^E\\d{2}.9$", dm_2$icd9_9code)] <- "None"

Наконец,

dm_2
#>   icd9_9code DM.complications
#> 1     E10.49          present
#> 2     E11.51          present
#> 3     E13.52          present
#> 4      E13.9             None
#> 5      E10.9             None
#> 6     E11.21          present
#> 7      E16.0          present

Небольшое примечание: есть замечательный пакет ICD, который вам также может пригодиться: https://cran.r -project.org / web / packages / icd / index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...