当有数字 colname 时,fread 错误地读取空 csv

fread reads empty csv wrongly when there is a numeric colname

如果我有一个像这样的 header 的空 csv 文件 -

❯ cat an.csv                                                                                                                                                                                                              10:36:25
a,b,c,d

在 Rconsole 中,当我害怕它时,我得到一个空的 DT。


❯ b = fread('an.csv')

❯ b
Empty data.table (0 rows and 4 cols): a,b,c,d

但是如果我在其中一个列中有一个数字 header 名称,fread 会将其读作 -

❯ cat another.csv                                                                                                                                                                                                         10:38:10
a,b,3

❯ bb = fread('another.csv')

❯ bb
   V1 V2 V3
1:  a  b  3

为什么 fread 在有数字 header 名称时会读错。我如何解决它 ?无论列名是什么,它都应该是一个空的 dt。

编辑:

除了答案之外,文档还解释了 fread 如何区分将第一行视为 header 行与否 -

  header: Does the first data line contain column names? Defaults
          according to whether every non-empty field on the first data
          line is type character. If so, or TRUE is supplied, any empty
          column names are given a default name.

使用:

fread('another.csv', header = TRUE)