楼主: 松石空月
1710 3

[实际应用] [请求删除本贴]R语言 性能测试 [推广有奖]

  • 0关注
  • 0粉丝

已卖:107份资源

本科生

74%

还不是VIP/贵宾

-

威望
0
论坛币
1028 个
通用积分
90.4623
学术水平
8 点
热心指数
16 点
信用等级
5 点
经验
1043 点
帖子
69
精华
0
在线时间
139 小时
注册时间
2014-11-1
最后登录
2024-12-2

楼主
松石空月 发表于 2017-3-16 23:25:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

一、测试目的

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:建议原数据标题采用英文,中文下引用会存在问题。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:性能测试 R语言 Logistic回归分析 logistic回归 Enterprise

沙发
johnmy 发表于 2017-3-17 04:31:21
data.table里是不是有个fread没试试吗?是不是更快
已有 2 人评分经验 学术水平 热心指数 收起 理由
飞天玄舞6 + 100 精彩帖子
松石空月 + 1 + 3 精彩帖子

总评分: 经验 + 100  学术水平 + 1  热心指数 + 3   查看全部评分

藤椅
松石空月 发表于 2017-3-17 08:09:34
johnmy 发表于 2017-3-17 04:31
data.table里是不是有个fread没试试吗?是不是更快
刚试了下,fread是比readr::read_csv更快些,第一次试9秒,第二次5秒,第三次4秒。非常感谢,之前我还不知道这个呢。

板凳
johnmy 发表于 2017-3-17 23:23:45
松石空月 发表于 2017-3-17 08:09
刚试了下,fread是比readr::read_csv更快些,第一次试9秒,第二次5秒,第三次4秒。非常感谢,之前我还不知 ...
这个包对于处理大点数据据说比较有效。
data.table的功能很强大。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 16:50