2011-05-31 127 views
9

我是R新手,我的問題應該是微不足道的。我需要從包含單詞及其出現編號的txt文件創建一個文字雲。爲此,我使用snippets package。 正如在鏈接底部可以看到的那樣,首先我必須創建一個向量(就是那個詞是矢量的權利),就像波紋管一樣。從R中的文件創建矢量

> 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

+1指出片段包。我不知道那一個。 – 2011-05-31 16:14:23

回答

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

對於單線程,使用'as.matrix(read.table('words.txt'))[,1]'(矩陣子集傳播名稱,而data.frame不)。 – Charles 2011-06-01 01:44:58

3

是的,'矢量'是適當的術語。

編輯:
更好的方法比write.table是使用保存()和load():

save(words. file="svwrd.rda") 
load(file="svwrd.rda") 

保存/負載組合保存所有的結構,而不是做強迫。 write.table後面跟着名字()< - 這很麻煩,你可以在這裏看到加文的回答,以及我在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 
+0

但不是OP想要從出現數據創建適當的文本文件並將* *讀入R? 'write.table()'業務是查看文件*應該如何格式化,以便隨後導入到R中,同時保留名稱。 – 2011-05-31 18:02:33

+0

我不認爲OP是特別清楚的。只有參考他在r-help上的交叉發表,他似乎已經有了一個文本文件。這個問題似乎要問如何保留已經在工作區中的已命名向量的屬性。 – 2011-05-31 18:06:11

+0

啊,好的。還沒有看到R-Help的帖子,位於該電子郵件文件夾後面。 – 2011-05-31 18:20:29