一、测试目的
1.测试R读取数据时,何种格式何种读取方式效率更高,资源占用更少。
2.为用R处理百万级数据以下人购“器”提供一点儿参考
二、测试平台:
(一)硬件
电脑型号 戴尔 Inspiron5421 笔记本电脑
处理器 英特尔 第三代酷睿i5-3317U @ 1.70GHz 双核 超低电压处理器
显卡 NVIDIA GeForce GT 640M LE ( 2 GB )
内存 4 X 2 GB ( 南亚易胜 DDR3 1600MHz )
主硬盘 三星 SSD850 EVO 120GB ( 120 GB / 固态硬盘 )
(二)软件
操作系统 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.
三、测试数据
100万行 X 35列
四、测试内容
(一)测试项目
主要测试读取各种格式文件和做logistic回归时1.CPU占用,2.内存占用,3.读取时间
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另存为转换得到。
(二)测试方法
CPU占用和内存占用,通过观察任务管理器,读取时间,用秒表手动计时。
五、结果
100百万行 X 35列数据,以上各种文件的各种读取方式,读取成功并内容无问题的有:
1.xls文件用readxl::read_excel()读取;
2.CSV UTF-8文件用readr::read_csv()读取;3.
文本txt文件用内置函数read.table()读取;
读取速度最快,资源占用最少的为CSV UTF-8文件用readr::read_csv(),读取时间在10秒左右,另外两种要30秒。
logistic回归分析
100百万行,5因素,二分类logistic回归分析,CPU占用最高46%,内存基本不增加,耗时5秒。
六、结论
1.推荐将含有中文的数据文件格式转化为CSV UTF-8格式,用readr包read_csv()函数读取。
2.100万 X 35例级数据,8G内存基本够用,处理数据的瓶颈在CPU,由于R是单线程的,因此也可以说瓶颈在于单核的运算能力,本人CPU单核1.7GHz,直观感受有些慢。
用read_csv()读取数据的优势总结:1.读取速度快,资源占用少,2.显示进度条,不会进入假死状态,3.可以定义各列数据类型,character、factor、integer、double、date,同时建议读取时用col_type定义好,方便后面分析。
tip:建议原数据标题采用英文,中文下引用会存在问题。
暂无数据