r - R 中的 fread data.table 不读取列名

标签 r data.table read.table

将数据文件读入 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/

相关文章:

Python 相当于 R 数据框

r - 在访问选项卡之前未使用传单代理更新另一个选项卡中的传单

r - cbind 与部分嵌套列表

r - 如何最好地将 data.table 的一列与同一 data.table 的另一列连接起来?

r - 如何在 R data.table 中按行使用 ifelse?

javascript - Rhandsontable 条件格式 - 如何根据特定属性值突出显示行?

R 从带有 csv 文件内容的内联字符串中读取 .csv 数据

r - 将文件读入 data.frame 时自动检测日期列

在 R 中读取具有不同列宽但固定分隔符的文本文件

r - 堆积条 ggplot2 上的误差条