R data.table fread using named colClasses without header (e.g. no col.names?)
R data.table fread using named colClasses without header (e.g. no col.names?)
更新(2016 年 6 月)
col.names 是在 data.table 1.9.6 上添加的,所以问题已经结束,每个人都非常高兴 :) 我想我现在可以毫无顾虑地将我所有的 read.csv 调用转换为 fread 调用毁灭
原题
使用 data.table 1.9.4
我正在导入 read.csv 对 fread 的调用,因为我们注意到了巨大的性能改进。大多数问题我都能处理,但我已经到了无能为力的地步,想知道是否有人有优雅的解决方案。
我的问题是我命名了 colClasses 但输入没有 header(这是一个 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"))
失败
Column name 'id' in colClasses[[1]] not found
我该如何解决?是否有计划添加 col.names?
在命令行中添加名称:
fread('echo "id,name,gender"; grep Male students.csv', colClasses = c(id='numeric'))
回答最初的问题,如果问题是 grep
删除了 header,您可以使用 awk
来打印第一行和任何包含 [=18 的行=]:
fread("awk 'NR==1 || /Male/' students.csv"), colClasses=(id="numeric"))
这可能会对仍在使用旧版本 data.table
的人有所帮助。
更新(2016 年 6 月)
col.names 是在 data.table 1.9.6 上添加的,所以问题已经结束,每个人都非常高兴 :) 我想我现在可以毫无顾虑地将我所有的 read.csv 调用转换为 fread 调用毁灭
原题
使用 data.table 1.9.4
我正在导入 read.csv 对 fread 的调用,因为我们注意到了巨大的性能改进。大多数问题我都能处理,但我已经到了无能为力的地步,想知道是否有人有优雅的解决方案。
我的问题是我命名了 colClasses 但输入没有 header(这是一个 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"))
失败
Column name 'id' in colClasses[[1]] not found
我该如何解决?是否有计划添加 col.names?
在命令行中添加名称:
fread('echo "id,name,gender"; grep Male students.csv', colClasses = c(id='numeric'))
回答最初的问题,如果问题是 grep
删除了 header,您可以使用 awk
来打印第一行和任何包含 [=18 的行=]:
fread("awk 'NR==1 || /Male/' students.csv"), colClasses=(id="numeric"))
这可能会对仍在使用旧版本 data.table
的人有所帮助。