打印单词的出现/位置

时间:2013-04-22 17:32:32

标签: r

我尝试了一些不同的软件包来构建一个R程序,它将文本文件作为输入,并生成该文件中的单词列表。每个单词都应该有一个向量,其中包含该单词存在于文件中的所有位置。 例如,如果文本文件包含字符串:

"this is a nice text with nice characters"

输出应该是这样的:

$this  
[1] 1

$is      
[1] 2

$a        
[1] 3

$nice    
[1] 4 7

$text  
[1] 5

$with  
[1] 6

$characters
[1] 8

我遇到了一个有用的帖子,http://r.789695.n4.nabble.com/Memory-usage-in-R-grows-considerably-while-calculating-word-frequencies-td4644053.html,但它不包括每个单词的位置。 我发现了一个名为“str_locate”的类似函数,但是我想要计算“单词”而不是“字符”。

对于使用哪种包/技术的任何指导,都会非常感激

1 个答案:

答案 0 :(得分:7)

你可以用基数R(奇怪地产生你建议的输出)来做到这一点:

# data
x <- "this is a nice text with nice characters"
# split on whitespace
words <- strsplit(x, split = ' ')[[1]]
# find positions of every word
sapply(unique(words), function(x) which(x == words))

### result ###
$this
[1] 1

$is
[1] 2

$a
[1] 3

$nice
[1] 4 7

$text
[1] 5

$with
[1] 6

$characters
[1] 8