如果文件中的第二行为空,则不会读取列名。我已经在文档中使用了标题,跳过等开关,但无法使其正常工作。
如果我文件中的第二行是空的,如何忽略这个事实并仍然将第一行读作列名?
第二行是空的:
> fread('c1 c2\n\n1 2\n3 4\n')
V1 V2
1: 1 2
2: 3 4
第二行不为空:
> fread('c1 c2\n1 2\n3 4\n')
c1 c2
1: 1 2
2: 3 4
答案 0 :(得分:7)
当前版本的data.table
(1.9.8 +)添加了blank.lines.skip
参数,似乎可以解决此问题:
fread('c1 c2\n\n1 2\n3 4\n',blank.lines.skip = TRUE)
# c1 c2
# 1: 1 2
# 2: 3 4
答案 1 :(得分:2)
解决方法:使用fread
读取文件,然后使用其他工具正确读取第一行,将其添加为列名。
library(data.table)
library(readr)
str_data <- 'c1 c2\n\n1 2\n3 4\n'
dt <- fread(str_data)
df.header <- read_delim(str_data, delim = " ", n_max = 0)
setnames(dt, names(df.header))
> dt
c1 c2
1: 1 2
2: 3 4