首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用regexpr识别icd10数据中的模式

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

Stack Overflow用户
提问于 2019-05-04 02:38:24
回答 2查看 111关注 0票数 0

我正在处理icd10数据,我希望基于模式"E1X.9X“创建名为called的新变量,使用正则表达式,但我一直收到错误。请帮帮忙

代码语言:javascript
复制
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

我想要

代码语言:javascript
复制
icd9_9code     complications
E10.49          present
E11.51          present
E13.52          present
E13.9           none
E10.9           none
E11.21          present
EN

回答 2

Stack Overflow用户

发布于 2019-05-04 03:01:55

看起来你的代码中有一些错误,我将在下面的代码中注意到它们:

您首先需要用引号将您的ICD码括起来:"E13.9"

代码语言:javascript
复制
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

代码语言:javascript
复制
dm_2$DM.complications <- "present"
dm_2$DM.complications[grepl("^E\\d{2}.9$", dm_2$icd9_9code)] <- "None"

最后,

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2019-05-05 20:21:22

这个问题已经解决了。我和合著者维护了五年的'icd‘R包可以做到这一点。特别是,它使用了来自AHRQ、Elixhauser original、Charlson等公司的标准化的合并症集合,包括您寻求的具有并发症的糖尿病。

例如,对于ICD-10 AHRQ,您可以在此处查看糖尿病及其并发症的代码。从icd 4.0开始,这些代码包括来自世界卫生组织的ICD-10代码,以及所有年份的ICD-10-CM。

代码语言:javascript
复制
icd::icd10_map_ahrq$DMcx

要使用它们,首先只需获取您的患者数据框并尝试:

代码语言:javascript
复制
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"]

或者,您可以通过以下方式获取数据帧而不是矩阵:

代码语言:javascript
复制
comorbid_ahrq(pts, return_df = TRUE)
# then you can do:
comorbid_ahrq(pts, return_df = TRUE)$DMcx

如果你给出一个源数据和你的目标的例子,我可以提供更多帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55975476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档