从R中的文件创建向量

时间:2011-05-31 14:13:37

标签: r

我是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

感谢。

2 个答案:

答案 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