【发布时间】:2016-12-17 19:48:21
【问题描述】:
我有以下文件:
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;
【问题讨论】:
-
您特别想使用
fread?readLines怎么样?也可以尝试fill = T参数与fread。 -
如果速度很快,我可以使用 readLines。我有很多文件要读取,首先我从 readr 尝试了 read_csv2,但它比 fread 慢得多。我会试试 readLines,谢谢。
-
我相信
fread最初会扫描文件结构。而readLines将文件作为连接处理,并且只读取前 x 行,而不管内容如何。 -
如果你有很多文件并且只需要每个文件的第一行,也许你应该先使用不同的工具将这些行提取并堆叠在一个文件中,然后再读入 r。我想一定有办法在命令行中做到这一点。
-
fread不太可能比readLines更快,因为由于一些开销,只读取了许多文件中的一行;正如弗兰克建议的那样,您最好通过命令行将文件连接成一个更大的文件,然后freading 输出该文件
标签: r data.table