2016-12-16 50 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 =“;”,但不起作用。

随着所有这些自动检测的进行,我认为一些没有自动检测的方法可能会更快,当你只想读第一行时。