小数点之前的前缀发生变化,结尾也发生变化,但遵循一定的模式(例如,前缀为 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]))
)
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"