【发布时间】:2017-01-17 10:23:54
【问题描述】:
我正在尝试读取一个看起来像这样的 .csv 文件,每个单元格中都有引号:
"a","b"
"1","你好"
"2","你好,测试"
使用 read.csv() 它适用于整数类型的列“a”。但是,对于 data.table::fread() 列,“a”是字符类型。
x <- fread("\"a\",\"b\"\n\"1\",\"hello\"\n\"2\",\"hello, test\"")
summary(x)
a b
Length:2 Length:2
Class :character Class :character
Mode :character Mode :character
有没有办法告诉 fread 确定完全引用的 .csv 文件中的列类型?
【问题讨论】:
-
您可以使用
colClasses-参数指定列类。见?fread。 -
要通过 colClasses 参数指定类型,我需要提前知道它们,但我不知道。上面的小例子只是为了说明格式的样子。我的实际输入文件有数百列。
-
您可以使用
x[, names(x) := lapply(.SD, type.convert)]进行事后转换。也许应该添加该步骤作为 fread 的选项... -
确实如此,as.is = TRUE。谢谢!
-
将调查:#1487
标签: r csv data.table fread