使用前导字符(如果存在)以及带有或不带空格的单位提取数字的最快最简单的方法是什么?
res <- c("Diam MM = 2.6 cm.","Mild (<2mm).")
value <- as.numeric(str_extract(res, "[[:digit:]]+\\.*[[:digit:]]+(?=[ ]?(cm|mm)?)"))
但我只得到:[1] 2.6 NA
如何添加2.6 cm
和<2mm
?
答案 0 :(得分:1)
您可以尝试使用gsub
:
res <- c("Diam MM = 2.6 cm.","Mild (<2mm).")
gsub(".*?([<>=]*\\d+(?:\\.\\d+)?\\s*\\w+).*", "\\1", res)
答案 1 :(得分:0)
使用stringr
包的简单解决方案:
res %>%
str_replace_all(" ", "") %>%
str_extract("[<>=].+[cm|mm]")
唯一的区别是此解决方案保留=
。
但很难知道这种情况如何在没有看到更多数据的情况下推广到您的数据。