“fread”与前导/尾随空格不兼容?

5
我将尝试在R中读取一个由空格分隔的列的文本文件。我尝试使用data.table,因为read.csv读取时间太长。然而,第一列有前导空格,在fread()中出现以下错误。
“测试标题行格式后未正确定位。ch=' '”
数据格式类似于:
    45 36 46  
    45 67 35

有没有办法使用fread()读取该文本文件而不需要重新格式化它?

有标题行吗?你能给出文件的前几行吗? - MrFlick
没有标题行。 - DonDyck
2个回答

0
这是一个使用 readLines 的解决方案,但我不确定速度如何。
require(data.table)

setwd("~")

in.df <- data.table(A = c(" a1"," b2"," c3"," d4"),
                    B = c(11,22,33,44))
in.df

write.table(in.df, file="testing.dat", quote = F,
            row.names = F, col.names = F)

dat <- paste(sub("^\\s+", "", readLines("testing.dat")), collapse = "\n")
dat

test.df <- fread(dat, stringsAsFactors = F)
test.df

0
如果您使用的是Linux系统,请尝试使用fread("sed 's/^[[:blank:]]*//' testing.dat")命令。该sed命令将删除testing.dat文件中每行开头的空格。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接