如何在 R 中扩展字母数字字符串?

问题描述 投票:0回答:1
我有这个包含范围内的 ICD-10 医疗代码的字母数字字符串;但是,我需要扩展它们,以便我的最终输出是一个反映每个范围内的每个医疗代码的字符串。我已经这样做好几天了,chatgpt 没有帮助。

小数点之前的前缀发生变化,结尾也发生变化,但遵循一定的模式(例如,前缀为 F11 到 F19,结尾有 120-129、220-229、920-929 三个范围)。我需要在列表或数据框中展开所有这些代码。

这只是我需要扩展的字母数字范围的示例:

test <- "F11.120-F11.129, F11.220-F11.229, F11.920-F11.929, F12.120-F12.129, F12.220-F12.229, F12.920-F12.929, F13.120-F11.129, F13.220-F11.229, F13.920-F11.929"
我需要最终输出如下所示:
“

F11.120、F11.121、F11.122、F11.123、F11.124、F11.125、F11.126、F11.127、F11.128、F11.129、F11.220、. ..,F19.929"

非常感谢您提供帮助或解决问题的想法。谢谢!

在试图制作一个循环时迷失之后,我的思维过程正在朝着这个方向发展:

test <- strsplit(test, ",")[[1]] codes <- str_split(test, "-", simplify = T) nums <- codes %>% as.data.frame() %>% mutate(prefix = as.character(sub("\\..*", '',.[,1])), start_num = as.numeric(sub('.*\\.', '', .[,1])), end_num = as.numeric(sub('.*\\.', '', .[,2])) )
    
r function foreach alphanumeric icd
1个回答
0
投票
使用

gregexpr

> gregexpr('F\\d{2}\\.\\d{3}', test) |> + regmatches(x=test) |> + unlist() [1] "F11.120" "F11.129" "F11.220" "F11.229" "F11.920" "F11.929" [7] "F12.120" "F12.129" "F12.220" "F12.229" "F12.920" "F12.929" [13] "F13.120" "F11.129" "F13.220" "F11.229" "F13.920" "F11.929"
    
© www.soinside.com 2019 - 2024. All rights reserved.