fread无法读取第一列为空的.csv文件

Wet*_*eet 12 csv r data.table

说我有第一个test.csv看起来像这样

,a,b,c,d,e
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用read.csv它,它工作正常.

read.csv("test.csv",header=FALSE)
#  V1 V2 V3 V4 V5 V6
#1 NA  a  b  c  d  e
#Warning message:
#In read.table(file = file, header = header, sep = sep, quote = quote,  :
#  incomplete final line found by readTableHeader on 'test.csv'
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用读取此文件,则会fread收到错误.

require(data.table)
fread("test.csv",header=FALSE)
#Error in fread("test.csv", header = FALSE) : 
#  Not positioned correctly after testing format of header row. ch=','
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该怎么做才能纠正这个问题?

Mic*_*ico 1

对于我来说,我的问题只是第一个?我的文件的行缺少 ID 值。

因此,我能够通过指定autostart在文件中足够远的位置来弹出非缺失值来解决问题:

fread("test.csv", autostart = 100L, skip = "A")
Run Code Online (Sandbox Code Playgroud)

这保证了当 fread 尝试自动识别sep和时sep2,它会在文件中格式正确的位置进行识别。

指定skip还可以确保fread找到作为列名称基础的正确行。

如果第一个字段确实没有非缺失值,那么您最好使用 Richard Scriven 的方法或在您最喜欢的文本编辑器中进行查找和替换,从 .csv 中删除该字段。