一、測(cè)試目的
1.測(cè)試R讀取數(shù)據(jù)時(shí),何種格式何種讀取方式效率更高,資源占用更少。
2.為用R處理百萬(wàn)級(jí)數(shù)據(jù)以下人購(gòu)“器”提供一點(diǎn)兒參考
二、測(cè)試平臺(tái):
(一)硬件
電腦型號(hào)? ?? ?? ?? ?戴爾 Inspiron5421 筆記本電腦
處理器? ?? ?? ?? ???英特爾 第三代酷睿i5-3317U @ 1.70GHz 雙核 超低電壓處理器
顯卡? ?? ?? ?? ?? ? NVIDIA GeForce GT 640M LE??( 2 GB )
內(nèi)存? ?? ?? ?? ?? ? 4 X 2 GB ( 南亞易勝 DDR3 1600MHz )
主硬盤(pán)? ?? ?? ?? ???三星 SSD850 EVO 120GB ( 120 GB / 固態(tài)硬盤(pán) )
(二)軟件
操作系統(tǒng)? ?? ?? ?? ?Windows 10 Enterprise 64位 10.0.14393版本14393
R? ?? ?? ?? ?? ?? ? R version 3.3.3 64位(2017-03-06)
RStudio? ?? ?? ?? ? Version 1.0.136
xlsx包? ?? ?? ?? ???package version 0.5.7.
readxl包? ?? ?? ?? ?package version 0.1.1.
readr包? ?? ?? ?? ? R package version 1.0.0.
三、測(cè)試數(shù)據(jù)
100萬(wàn)行 X 35列
四、測(cè)試內(nèi)容
(一)測(cè)試項(xiàng)目
主要測(cè)試讀取各種格式文件和做logistic回歸時(shí)1.CPU占用,2.內(nèi)存占用,3.讀取時(shí)間
xlsx、xls文件:1.readxl::read_excel(); 2.xlsx::read.xlsx()
csv(UTF-8和另一種)文件:1.read.csv,; 2.readr:read_csv()
txt(Unicode 和 文本)文件:1.read.table; 2.readr_table()
原文件位xlsx格式,其他由此Excel 2016另存為轉(zhuǎn)換得到。
(二)測(cè)試方法
CPU占用和內(nèi)存占用,通過(guò)觀察任務(wù)管理器,讀取時(shí)間,用秒表手動(dòng)計(jì)時(shí)。
五、結(jié)果
100百萬(wàn)行 X 35列數(shù)據(jù),以上各種文件的各種讀取方式,讀取成功并內(nèi)容無(wú)問(wèn)題的有:
1.xls文件用readxl::read_excel()讀??;
2.CSV UTF-8文件用readr::read_csv()讀??;3.
文本txt文件用內(nèi)置函數(shù)read.table()讀取;
讀取速度最快,資源占用最少的為CSV UTF-8文件用readr::read_csv(),讀取時(shí)間在10秒左右,另外兩種要30秒。
logistic回歸分析
100百萬(wàn)行,5因素,二分類logistic回歸分析,CPU占用最高46%,內(nèi)存基本不增加,耗時(shí)5秒。
六、結(jié)論
1.推薦將含有中文的數(shù)據(jù)文件格式轉(zhuǎn)化為CSV UTF-8格式,用readr包read_csv()函數(shù)讀取。
2.100萬(wàn) X 35例級(jí)數(shù)據(jù),8G內(nèi)存基本夠用,處理數(shù)據(jù)的瓶頸在CPU,由于R是單線程的,因此也可以說(shuō)瓶頸在于單核的運(yùn)算能力,本人CPU單核1.7GHz,直觀感受有些慢。
用read_csv()讀取數(shù)據(jù)的優(yōu)勢(shì)總結(jié):1.讀取速度快,資源占用少,2.顯示進(jìn)度條,不會(huì)進(jìn)入假死狀態(tài),3.可以定義各列數(shù)據(jù)類型,character、factor、integer、double、date,同時(shí)建議讀取時(shí)用col_type定義好,方便后面分析。
tip:建議原數(shù)據(jù)標(biāo)題采用英文,中文下引用會(huì)存在問(wèn)題。








暫無(wú)數(shù)據(jù)