我是R的新手,我的问题应该是微不足道的。我需要从包含单词及其出现次数的txt文件创建一个单词云。出于这个目的,我正在使用snippets package。 正如在链接的底部可以看到的那样,首先我必须创建一个向量(右边是单词是向量吗?),如下所述。
> words <- c(apple=10, pie=14, orange=5, fruit=4)
我的问题是做同样的事情,但是从包含单词及其出现次数的文件创建向量。如果你能给我一些提示,我会很高兴。
此外,为了理解要插入的文件的格式,我将矢量字写入文件。
> write(words, file="words.txt")
但是,文件words.txt只包含值而不包含名称(苹果,馅饼等)。
$ cat words.txt
10 14 5 4
感谢。
答案 0 :(得分:5)
words
是一个名为的向量,如果我正确阅读了帮助,这个区别在cloud()
函数的上下文中很重要。
将数据正确写入文件:
write.table(words, file = "words.txt")
像创建的txt文件一样创建单词出现文件。当你把它读回R时,你需要做一些操作:
> newWords <- read.table("words.txt", header = TRUE)
> newWords
x
apple 10
pie 14
orange 5
fruit 4
> words <- newWords[,1]
> names(words) <- rownames(newWords)
> words
apple pie orange fruit
10 14 5 4
我们在这里做的是将文件读入newWords
,将其作为子集,以获取我们存储在words
中的唯一列(变量)。最后一步是从读入的文件中获取行名称,并将它们作为words
向量上的“名称”应用。我们使用names()
函数执行最后一步。
答案 1 :(得分:3)
是的,'vector'是正确的术语。
编辑:
比write.table更好的方法是使用save()和load():
save(words. file="svwrd.rda")
load(file="svwrd.rda")
save / load组合保留了所有结构,而不是强制执行。 write.table后跟名字()&lt; - 是一种麻烦,你可以在Gavin的答案和rhelp的答案中看到。
初步答复: 建议您使用as.data.frame强制转换为数据帧,然后使用write.table()写入文件。
write.table(as.data.frame(words), file="savew.txt")
saved <- read.table(file="savew.txt")
saved
words
apple 10
pie 14
orange 5
fruit 4