将数据文件读入 R 时,我可以将其作为 data.frame
读入或 data.table
使用 data.table
包裹。我更愿意使用 data.table
将来因为它可以更好地处理大数据。但是,这两种方法都存在问题(对于 data.frames 是 read.table
,对于 data.tables 是 fread
),我想知道是否有一个简单的修复方法。
当我使用 read.table
生产 data.frame
, 如果我的列名包含冒号或空格,它们将被句点替换,这是我不想要的。我希望以“原样”读取列名。
或者,当我使用 fread
生产 data.table
,我的列名根本没有读入,这显然是不希望的。
查看下面的要点以获取可重现的示例:
https://gist.github.com/jeffbruce/b966d41eedc2662bbd4a
干杯
最佳答案
这是一个可能有效的解决方案。我不确定这是否是最短的解决方案,或者您可以通过巧妙地使用 drop
来做到这一点。在数据表中,但下面的 hack 确实有效。 “问题”是文件中的行号。
先读入头文件,然后添加到数据表中
header <- read.table("yourfile.csv", header = TRUE, nrow = 1)
indata <- fread("yourfile.csv", skip=1, header=FALSE)
setnames(indata, colnames(header))
关于r - R 中的 fread data.table 不读取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32767351/