小编Rya*_*yan的帖子

使用R中的stringr和regex从文本中提取数字

我有一个问题,我试图从包含文本和数字的字符串中提取数字,然后创建两个新列,显示数字的最小值和最大值。

例如,我有一列和一串这样的数据:

Text
Section 12345.01 to section 12345.02
Run Code Online (Sandbox Code Playgroud)

我想从 Text 列中的数据创建两个新列,如下所示:

Min        Max   
12345.01   12345.02
Run Code Online (Sandbox Code Playgroud)

我将 dplyr 和 stringr 与正则表达式一起使用,但正则表达式仅提取模式的第一次出现(第一个数字)。

df%>%dplyr::mutate(SectionNum = stringr::str_extract(Text, "\\d+.\\d+"))
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用该stringr::str_extract_all功能。它似乎提取了模式的两个出现,但它在小标题中创建了一个列表,我发现这是一个真正的麻烦。所以我坚持第一步,只是想把数字放到他们自己的列中。

谁能推荐最有效的方法来做到这一点?理想情况下,我想从字符串中提取数字,将它们转换为数字as.numeric,然后运行min()max()运行。

regex r stringr

5
推荐指数
2
解决办法
1176
查看次数

标签 统计

r ×1

regex ×1

stringr ×1