从R中的字符向量中提取数字和下一个字符串

Posted

技术标签:

【中文标题】从R中的字符向量中提取数字和下一个字符串【英文标题】:Extract digits and next string after from a character vector in R 【发布时间】:2022-01-17 04:29:27 【问题描述】:

我正在尝试解决一个问题。我有一个文本向量,我想从中提取数字和下一个字符(包括空格)。我正在为 R 使用 stringr 包,但我似乎找不到解决问题的好方法。感谢您的帮助/反馈。

library(tidyverse)
library(stringr)

my_text <- "This is my example vector. I have 15 oranges in the fridge, 12 apples in the room, 1 mother in my family, 1 father in my family, 12 siblings that live on 3 continents, and 45 randomthingsinmyhouse that I dont use"

# I would like to get the following information from my_text

"15 oranges" "12 apples" "1 mother" "1 father" "12 siblings" "45 randomthingsinmyouse"

我尝试过使用str_extract_all(my_text, "\\\d+"),但显然只能抓取数字。

str_extract_all(my_text, "\\d+")

# "15" "12" "1" "1" "12" "45"

我尝试在stringr 包帮助页面 (https://stringr.tidyverse.org/articles/regular-expressions.html) 上使用不同的正则表达式模式,但我似乎找不到适合我的问题的模式。数字后面的文字也可以是随机的——我可以用鸡、房子等代替苹果和橘子。关于我应该如何解决这个问题的任何建议?

非常感谢

【问题讨论】:

【参考方案1】:

使用该模式匹配一​​个或多个数字 (\\d+) 后跟一个或多个空格 (\\s+) 和单词 (\\w+)

library(stringr)
str_extract_all(my_text, "\\d+\\s+\\w+")[[1]]

【讨论】:

以上是关于从R中的字符向量中提取数字和下一个字符串的主要内容,如果未能解决你的问题,请参考以下文章

R语言中如何提取字符串

如何从字符向量中解析 CSV 数据以提取数据框?

从字符串中提取数字作为R中的数字或日期

从字符串中提取单词 - 微妙的问题

R从字符串中提取第一个数字

从R中的字母数字字符中删除前导零