首页 > 解决方案 > 是否有一个 R 函数来提取所有数字,然后是特定模式?

问题描述

我正在工作 R。我想提取向量中最后一个空格和字符串模式(“-APPLE”)之间的所有数字。这些数字可以是可变长度的。

test_string = c("ABC 2-APPLE", "123 25-APPLE", "DEF GHI 567-APPLE", "ORANGE")

预期结果集应该是一个向量,如 c(2, 25, 567, NA)

标签: rstringextraction

解决方案


请参阅具有多个捕获组的 R 中的正则表达式组捕获,以获取str_match()使用包中的,的示例stringr

在你的情况下:

> test_string = c("ABC 2-APPLE", "123 25-APPLE", "DEF GHI 567-APPLE")
> 
> library(stringr)
> x <- str_match(test_string, " ([0-9]+)-APPLE$")[,2]
> as.numeric(x)
[1]   2  25 567

推荐阅读