1. 程式人生 > >選合適的R語言讀取資料方式

選合適的R語言讀取資料方式

今天是個好日子,特地花時間看了R Data Import/Export,不僅萌生了匯入各種不同的資料方式,看看哪個更適合自己的需要,僅僅算是娛樂吧!!!
大小
檔案不是特別大,先讓他們走一波,細小的看一看,對比一波,再看大的資料集。

system.time(readLines('D:/R/data/Scorecard/mydata.txt'))
使用者 系統 流逝 
0.11 0.01 0.13 
system.time(read.csv("D:/R/data/Scorecard/model_sample.csv"))
使用者 系統 流逝 
1.36 0.05 1.43 
system.time(read
.delim("D:/R/data/Scorecard/model_sample.csv")) 使用者 系統 流逝 0.45 0.02 0.47
system.time(read.delim2("D:/R/data/Scorecard/model_sample.csv"))
使用者 系統 流逝 
0.51 0.00 0.52 
library(readr)
system.time(read_delim("D:/R/data/Scorecard/model_sample.csv",delim = '\001'))
使用者 系統 流逝 
0.03 0.06 0.10 
system.time(read_csv("D:/R/data/Scorecard/model_sample.csv"
)) 使用者 系統 流逝 0.58 0.04 0.72
system.time(read_csv2("D:/R/data/Scorecard/model_sample.csv"))
使用者 系統 流逝 
0.04 0.02 0.05 
system.time(read_table("D:/R/data/Scorecard/model_sample.csv"))
使用者 系統 流逝 
0.03 0.00 0.03
system.time(read_table2("D:/R/data/Scorecard/model_sample.csv"))
使用者 系統 流逝 
0.14 0.00 0.14
system.time(read.csv2("D:/R/data/Scorecard/model_sample.csv"
)) 使用者 系統 流逝 0.42 0.00 0.42

發現read_csv2read_delim比較強有力啊

library(readxl)
system.time(read_excel("D:/R/data/Scorecard/model_sample.xlsx"))
使用者 系統 流逝 
1.34 0.24 1.73
system.time(read_xlsx("D:/R/data/Scorecard/model_sample.xlsx"))
使用者 系統 流逝 
1.13 0.23 1.36 
library(data.table)
system.time(fread("D:/R/data/Scorecard/model_sample.csv"))
使用者 系統 流逝 
0.24 0.00 0.27

data.table這個包確實強啊,需要繼續深鑿。
讀取excel資料確實很難受啊,怪不得大家都建議轉成csv,或者tsv呢!!!
後面碰到了好點兒的,繼續加餐!
來個大資料集
其實啊,這個資料集也就124M,才拿到手不久。不過資料集裡面就不好看了啊。
開始繼續測試:

system.time(read.csv("D:/R/data/mydata.csv")) 
使用者  系統  流逝 
30.71  0.20 31.79
system.time(read.delim("D:/R/data/mydata.csv"))
 使用者  系統  流逝 
44.54  0.14 44.73 
system.time(read.delim2("D:/R/data/mydata.csv"))
 使用者  系統  流逝 
45.47  0.03 45.58 
system.time(read_delim("D:/R/data/mydata.csv",delim = '\001'))
使用者 系統 流逝 
3.38 0.55 4.42 
 system.time(read.csv("D:/R/data/mydata.csv"))
 使用者  系統  流逝 
28.75  0.14 28.94 
system.time(read_csv("D:/R/data/mydata.csv"))
使用者 系統 流逝 
1.36 0.07 1.44
system.time(read_csv2("D:/R/data/mydata.csv"))
使用者 系統 流逝 
3.07 0.58 3.66 
system.time(read_table("D:/R/data/mydata.csv"))
使用者 系統 流逝 
4.96 0.17 5.22 
system.time(read_table2("D:/R/data/mydata.csv"))
 使用者  系統  流逝 
10.71  0.19 10.93
system.time(read.csv2("D:/R/data/mydata.csv"))
 使用者  系統  流逝 
44.56  0.17 44.80 
 system.time(fread("D:/R/data/mydata.csv"))
使用者 系統 流逝 
1.14 0.02 1.16 

看來大資料集還得看fread啊。罪過,一切都是罪過。