2016-05-12 65 views
0

使用readr軟件包讀取大文件(接近2000000行)時遇到問題。使用readr導入具有不同行長度和空格作爲分隔符的大數據文件

爲什麼我要使用readr軟件包。我的數據文件可以包含ASCII控制字符(0x01等於ascii 26等於CTRL + Z),它會停止執行read.table(),我注意到readr軟件包對該問題不敏感。

我的文件有不同的行lenghts因此,我會用fill=TRUE如果我可以使用read.table()

我試圖使用readr軟件包的read_table,但沒有成功,因爲它似乎沒有找到空格作爲列分隔符。我試過使用read_delim。代碼爲read_delim(file,delim=" ")。找到了分隔符,但第一行被認爲是我的數據框的主要長度,因此較長的行被截斷。

有沒有人得到意見?使用下面的代碼

+0

您是否嘗試過'data.table'包的'fread'函數? – Jaap

+2

你能告訴你如何使用'read_file()'嗎?這個函數是爲了[讀取文本文件的空格分隔]而創建的(http://search.r-project.org/library/readr/html/read_table.html)。想想替代方案,你知道每列的「寬度」嗎?或列初始和最終位置? –

+0

我剛剛嘗試過fread,但它似乎停在空行,你有線索來阻止這個錯誤? –

回答

0

我成功地收集我的數據(從命名文件的文件)到數據幀(rtcm1):

#create a vector for named the columns, actually I used more for define the number of columns to be used to import my file 

col<-paste("V",1:17,sep="") 

#use read_delim of the readr packages with a separator is whitespace. I don't really know why but I need to put quote="" to collect all my datas. maybe to not consider "" as quoting characters. 

rtcm1<-read_delim(file,delim=" ",col_names=col,quote="") 

利用上述方案NA的填充單元沒有DATAS和警告由給定功能,但它似乎運作良好。

相關問題