假设我有第一个 test.csv
,如下所示
,a,b,c,d,e
如果我尝试使用 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'
但是,如果我尝试使用 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=','
为什么会发生这种情况?我可以采取什么措施来纠正这种情况?
最佳答案
对于我来说,我的问题只是第一个?我的文件的行缺少 ID 值。
因此,我能够通过将 autostart
指定到文件中足够远的位置来弹出非缺失值来解决问题:
fread("test.csv", autostart = 100L, skip = "A")
这保证了当 fread 尝试自动识别 sep
和 sep2
时,它会在文件中格式正确的位置执行此操作。
指定 skip
还可以确保 fread
找到作为列名称基础的正确行。
如果第一个字段确实没有非缺失值,那么您最好使用 Richard Scriven 的方法或在您喜欢的文本编辑器中进行查找和替换,从 .csv 中删除该字段。
关于r - fread 无法读取第一列为空的 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344161/