从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中的字符向量中提取数字和下一个字符串的主要内容,如果未能解决你的问题,请参考以下文章