当有数字 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)
如果我有一个像这样的 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)