2012-06-26 82 views
2

我有一個製表符分隔的文本文件,其中包含包含空格的字符串名稱。它是python例程的輸出。該文本文件看起來像這樣,帶有隱藏的'\ t'字符。從製表符分隔的.txt文件中將包含空格的字符串讀入R

Mother's Day Breakfast in Bed Breakfast in Bed Arkadia Tea Chai Spice 240g 6.69 False 
Mother's Day Breakfast in Bed Breakfast in Bed Coles Crumpets 6 pack 2.29 False 
Mother's Day Entertainment Entertainment 4 Ingredients Book 1 by Kim McCosker & Rachael Bermingham 1 each 14.00 False 
Pantry Baking Cake Mix White Wings Red Velvet Cake 425g 4.61 False 

由於文件是製表符分隔的,因此excel - 例如 - 識別出有六列 - 這正如我所願。

我希望它在一個R表中有六列,並將列視爲因子。

我已經閱讀文檔,它似乎是指定的分隔符應該工作 - 但我不能得到這個工作情況如下:

fullSurvey <- read.table(file="C:/1.txt", check.names=FALSE, header=FALSE, sep="\t", stringsAsFactors=TRUE) 

返回:

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
line 2 did not have 15 elements 

是這可能在R?

+4

您上面提供的數據中沒有製表符。而且,列之間的空格數量是可變的。假設您的文本文件實際上是製表符分隔的,請嘗試爲'read.table'調用添加'quote =「」'。 – bdemarest

+0

我不知道什麼是錯的 - 但是,以下工作:fullSurvey < - read.delim(file =「C:/1.txt」,header = FALSE,sep =「\ t」,stringsAsFactors = TRUE)。 @bdemarest - 我從vim剪切並粘貼,我100%確信它有標籤。 – ricardo

+2

你的數據包含不是引號的撇號(''')。 'read.delim'使用'quote =「\」「''而read.table'使用'quote =」\「'」'。 @bdemarest評論是正確的解決方案,但'read.delim'的默認值只有雙引號,所以它也可以工作。 – mnel

回答

0

(將註釋移動到答案以希望標記爲已解決)。

一般來說,當你輸入製表符分隔,您可以嘗試使用read.delim,其中,像read.csv爲CSV文件,本來一般合理的缺省值的read.table

當您的數據包含撇號,單引號或雙引號時,您可能需要指定用於引用字符的值,或指定quote = ""以保留嵌入的引號。

相關問題