2017-01-17 95 views
1

我想讀.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

回答

2
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      
相關問題