我有一个以空格分隔的文件,而且有些列是空白的,因此我们最终会有多个空格, fread 会因错误而失败。但 read.table 工作正常。见例:
library(data.table)
# R version 3.4.2 (2017-09-28)
# data.table_1.10.4-3
fread("A B C D
1 2 3
4 5 6 7", sep = " ", header = TRUE)
Error in fread("A B C D\n1 2 3\n4 5 6 7") : Expected sep (' ') but new line, EOF (or other non printing character) ends field 2 when detecting types from point 0: 1 2 3
read.table(text ="A B C D
1 2 3
4 5 6 7", sep = " ", header = TRUE)
# A B C D
# 1 1 2 NA 3
# 2 4 5 6 7
我们如何使用 fread 阅读,我尝试设置sep = " "
和na.string = ""
,没有帮助。
答案 0 :(得分:3)
在 fread 函数中,默认情况下strip.white
设置为TRUE
,这意味着会删除前导空格。这对于使用fixed width或irregular number of spaces作为分隔符读取文件非常有用。
默认情况下, read.table strip.white
设置为FALSE
。
fread("A B C D
1 2 3
4 5 6 7", sep = " ", header = TRUE, strip.white = FALSE)
# A B C D
# 1: 1 2 NA 3
# 2: 4 5 6 7