在字符串中搜索单词的位置

时间:2016-05-15 13:52:08

标签: r

我需要在R中做一个小练习,我需要知道一个特定单词出现在字符串中的次数以及每个单词的位置。

我有这个:

string = 'a b a b c d a a g'
splitstring = strsplit(string, '  ')
sapply(gregexpr("a", splitstring, fixed= TRUE), function(x) sum(x>-1))

我的输出是:[1] 4,所以我有四个' a'在我的字符串中,现在我想知道他们的位置。

2 个答案:

答案 0 :(得分:2)

gregexpr为您提供职位:

gregexpr("a", string, f=T)[[1]]
# [1]  1  5 13 15

答案 1 :(得分:0)

一种解决方案是使用stringr包位置函数,如下所示:

library(stringr)
string = 'a b a b c d a a g'
l <- str_locate_all(string, 'a')
l

这给出了所有开始和结束位置的矩阵(ces)列表形式的输出,如下所示:

[[1]]
     start end
[1,]     1   1
[2,]     5   5
[3,]    13  13
[4,]    15  15

如果您只想提取起始位置,您可以执行以下操作:

l[[1]][, 'start']
[1]  1  5 13 15