2016-12-16 64 views
0

我有以下文件:讀用fread只有一條線從data.table

bla;bla; 
0;1;2;3;4; 

我想只讀用fread第一線(從data.table 1.10.0):

fread('data/test.txt', nrows = 1, skip = 0, colClasses = "character", autostart = 0, header = F)

它產生以下警告:

Warning message: 
In fread("data/test.txt", nrows = 1, skip = 0, colClasses = "character", : 
Starting data input on line 2 and discarding line 1 because it has too few or too many items to be column names or data: bla;bla; 
+1

你特別想使用'fread'? 'readLines'怎麼樣?也可以用'fread'嘗試'fill = T'參數。 –

+0

如果速度很快,我可能會使用readLines。我有很多文件要讀取,首先我從readr嘗試了read_csv2,但它比fread慢得多。我會嘗試readLines,謝謝。 –

+1

我相信'fread'最初會掃描文件結構。雖然'readLines'將文件作爲連接處理,並只讀取前x行,而不管內容。 –

回答

0

我不認爲本fread將工作。軟件包說明明確指出

'fread'用於常規分隔文件;即,每行具有相同的>數量的列。將來,可在每列中指定輔助分隔符(sep2) 。這樣的列將被讀作類型列表,其中每個單元>本身就是一個向量。

我試過組合sep =「;」和sep2 =「;」,但不起作用。

隨着所有這些自動檢測的進行,我認爲一些沒有自動檢測的方法可能會更快,當你只想讀第一行時。