我正在使用(或者我想使用)R来提取一些信息。我有以下句子,我想分开。最后,我想只提取24号。
这就是我所拥有的:
doc <- "Hits 1 - 10 from 24"
我想提取数字“24”。我知道如何在“Hits 1 - 10 from”和“24”中减少句子后提取数字。我试过用这个:
n_docs <- unlist(str_split(key_n_docs, ".\\from"))[1]
但这让我失望:“点击1 - 10” 显然,分裂以某种方式起作用,但我对“从”而不是之前的部分感兴趣。所有的帮助表示赞赏!
答案 0 :(得分:2)
通常str_split
的结果将包含您在索引1
中搜索的数字,但是由于您用unlist
包装它,似乎您必须将索引增加一。使用
unlist(strsplit("Hits 1 - 10 from 24", "from"))[2]
对我来说就像是一种魅力。
答案 1 :(得分:2)
如果要从单个字符串中提取:
strsplit(key_n_docs, "from")[[1]][2]
或@BastiM使用的等效表达式(抱歉,我提交了我的答案之后看到了你的答案)
unlist(strsplit(key_n_docs, "from"))[2]
如果要从字符串向量中提取:
sapply(strsplit(key_n_docs, "from"),`[`, 2)
答案 2 :(得分:2)
您可以使用str_extract
中的stringr
:
library(stringr)
numbers <- str_extract(doc, "[0-9]+$")
这只会给出句子末尾的数字。
numbers
"24"
答案 3 :(得分:1)
您可以使用sub
提取数字:
sub(".*from *(\\d+).*", "\\1", doc)
# [1] "24"