更新(2016年6月)
在data.table 1.9.6上添加了col.names,所以问题已经解决,每个人都非常高兴 :) 我想现在我可以将所有的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"))
现在在fread中,我仍然想使用命名为colClasses的内容,但是我没有列名,因此只能使用
males.students <- fread("grep Male students.csv"),
colClasses=(id="numeric"))
出现错误:
在colClasses [[1]]中未找到列名为'id'的列
我该如何解决?是否有计划添加列名?
colClasses=list(numeric=1))
。 - shadowselect
参数。 - Rich Scriven