更新(2016年6月)

col.names已添加到data.table 1.9.6上,因此问题已结束,每个人都超级高兴:)我想我现在可以将所有read.csv调用转换为fread调用,而无需担心破坏

原始问题

使用data.table 1.9.4

由于我们注意到巨大的性能改进,因此我将read.csv调用导入到fread中。我可以处理的大多数问题,但是我已经一无所知,想知道是否有人有一个明智的解决方案。

我的问题是我已经命名为colClasses,但是输入没有标题(这是grep函数),这是一个很愚蠢的例子:

males.students <- read.csv(pipe("grep Male students.csv"),
                           col.names=c("id", "name", "gender"),
                           colClasses=(id="numeric"))


现在,我仍然想要命名的colClasses,但是我没有col名称,所以只使用

males.students <- fread("grep Male students.csv"),
                        colClasses=(id="numeric"))


失败于


找不到colClasses [[1]]中的列名“ id”


我该如何解决?有计划添加col.names吗?

最佳答案

在命令行中添加名称:

fread('echo "id,name,gender"; grep Male students.csv', colClasses = c(id='numeric'))

10-07 14:14