2014-05-15 79 views
2

我有一個文本文件,格式如下:elt1\telt2\t...包含1,000,000個元素。 大多數這些元素都是整數,但其中一些元素的形式爲number_number或chainOfCharacters。例如:1\t2\t2_3\t4_44\t2\t'sap'\t34\t'stack'應輸出:1 2 2_3 4_44 2 'sap' 34 'stack'。我試圖使用data <- read.table(file(fileName),row.names=0,sep='\t')在R中加載此數據,但它永遠佔用。可以加速嗎?將文本文件轉換爲R中的矢量

+0

我等了10分鐘,他們中斷程序 – teaLeef

+0

只有一排... – teaLeef

回答

4

您應該使用scan代替:

scan(fileName, character(), quote = "") 
# Read 8 items 
# [1] "1"  "2"  "2_3"  "4_44" "2"  "'sap'" "34" "'stack'" 
+0

一些在我的文本文件中的元素是不是數字(如1_2)所以我得到了以下錯誤:掃描()預期'真實',得到'1_2' – teaLeef

+1

@teaLeef,請編輯您的問題與足夠的複雜性的示例數據。如果它不是「1,000,000數字」。那麼不要寫這個。 – Henrik

+0

它不會輸出文本文件的元素。相反,我得到1 2 3 4 etc – teaLeef

1

您可以使用read.table

> txt <- "1\t2\t2_3\t4_44\t2\t'sap'\t34\t'stack'" 
> read.table(text = txt) 
## V1 V2 V3 V4 V5 V6 V7 V8 
## 1 1 2 2_3 4_44 2 sap 34 stack 

或者readLines

> xx <- readLines(textConnection(txt)) 
> strsplit(xx, '\t')[[1]] 
## [1] "1"  "2"  "2_3" "4_44" "2"  "'sap'" "34"  "'stack'" 
+0

是否可以傳遞一個文本文件作爲參數? (我嘗試了read.table(textConnection(file(fileName)),sep ='\'t),但是它是一個無效的參數 – teaLeef

+0

我做了一個編輯,'textConnection'不需要'read.table' –

相關問題