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

标签 r csv data.table

假设我有第一个 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 尝试自动识别 sepsep2 时,它会在文件中格式正确的位置执行此操作。

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

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

关于r - fread 无法读取第一列为空的 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344161/

相关文章:

r - 绘制 R 中单列的总和

python - 缺少 1 个必需的仅关键字参数

r - 如何导出每个键的数据表?

r - 使用 :=, 时为什么默认使用 with=TRUE?

r - 我怎么不能读取文件中的最后一行?

r - 在 R 中创建组合数据框

r - 根据列表对列进行排序,然后对数据框中的另一列进行排序

mongodb - 将带有分号分隔符的 CSV 导入 MongoDB 数据库

加载 CSV 文件时,PHP 在完成脚本之前终止(?)

r - 如何在 R 中按组顺序标记类别?