【发布时间】:2013-01-04 15:02:59
【问题描述】:
我正在使用来自data.table 的fread 来加载csv 文件。但是,我的 csv 文件使用 dec="," 作为小数分隔符(1.23 将是 1,23)。与read.csv 不同,dec 似乎不是一个允许的参数。
R) args(fread)
function (input = "test.csv", sep = "auto", sep2 = "auto", nrows = -1,
header = "auto", na.strings = "NA", stringsAsFactors = FALSE,
verbose = FALSE, autostart = 30)
您是否看到一种解决方法(可能是一个 R 选项设置),使我能够使用 fread(它快得多,它节省了我很多时间)?
PS:colClasses 还没有实现,所以setAs 不能像this post 那样使用
【问题讨论】:
-
作为一种解决方法,您可以用快速文本编辑器替换。
-
我会说“询问包维护者”,特别是因为这个功能正在开发中:stackoverflow.com/questions/14124813/data-table-fread-function
-
PS 从查看 fread 代码(在 cmets 中链接到另一个问题,它似乎使用
strtod(此处参考:cplusplus.com/reference/cstdlib/strtod,这意味着实现逗号分隔的小数可能是有点棘手(小数点分隔符在strtod中硬编码)。跟进@Roland 的评论,如果您使用的是sed的系统(Linux、MacOS 或带有Cygwin 的PC),您可以使用它来做这种即时转换:见stackoverflow.com/questions/3439001/… -
@BenBolker:我学会了小心使用语言环境:stat.ethz.ch/pipermail/r-devel/2012-August/064609.html
-
@Matthew:我会向 R-forge 提出请求,谢谢。
标签: r csv data.table