读完全引用的.csv有R data.table FREAD

问题描述:

我想读.csv文件看起来像这样在每一个单元格引用文件:
“A”,“B”
“1”, “你好”
“2”,“你好,测试”读完全引用的.csv有R data.table FREAD

使用read.csv()它可以很好地处理integer类型的列“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文件中的列类型?

+2

您可以使用'colClasses'参数指定列类。见'?fread'。 – Jaap

+0

要通过colClasses参数指定类型,我需要事先知道它们,但我不知道。上面的小例子仅用于说明格式的外观。我的实际输入文件有数百个列。 –

+0

您可以使用'x [,names(x):= lapply(.SD,type.convert)]'在事实之后进行转换。也许这一步应该添加作为fread ... – Frank

x <- fread("\"a\",\"b\"\n\"1\",\"hello\"\n\"2\",\"hello, test\"") 
x[, names(x) := lapply(.SD, type.convert, as.is = TRUE)] 
summary(x) 

    a    b    
Min. :1.00 Length:2   
1st Qu.:1.25 Class :character 
Median :1.50 Mode :character 
Mean :1.50      
3rd Qu.:1.75      
Max. :2.00