如何使用regexpr识别icd10数据中的模式

时间:2019-05-03 18:38:24

标签: r

我正在使用icd10数据,我希望使用正则表达式基于模式“ E1X.9X”创建一个名为complication的新变量,但是我一直遇到错误。请帮助

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 :(得分:0)

您的代码中似乎有一些错误,我将在下面的代码中予以记录:

您首先要用引号将您的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

答案 1 :(得分:0)

此问题已解决。我和合著者已经维护了五年的“ icd” R软件包可以做到这一点。特别是,它使用标准化的合并症,包括AHRQ,Elixhauser original,Charlson等发现的具有并发症的糖尿病。

例如,对于ICD-10 AHRQ,您可以在此处查看糖尿病合并症的代码。从icd 4.0开始,这些内容包括WHO的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

如果您提供源数据和目标示例,我可以提供更多帮助。