Re: [讨论] for loop与*apply function请益

楼主: celestialgod (天)   2015-05-22 12:52:45
我不知道你的sapply跟for为什么会差那么多
照理来说sapply跟for应该一样快
我的模拟: (共有20万列,elapsed是总时间)
group_f2, group_f3分别是for, sapply
group_f1用cut, cbind
group_f4用dplyr, plyr (用两种不同的input, X_df: data.frame, X_dt: data.table)
# test replications elapsed relative user.self
# 1 group_f1(X_df) 20 0.96 1.000 0.95
# 4 group_f4(X_df) 20 0.98 1.021 0.97
# 5 group_f4(X_dt) 20 1.23 1.281 1.20
# 2 group_f2(X_df) 20 417.14 434.521 411.56
# 3 group_f3(X_df) 20 418.21 435.635 412.50
code link: http://pastebin.com/JArHScjb
凡事还是先考虑vecotrise为主,
处理资料还是推荐用plyr + dplyr来做处理,
依照需求再使用tidyr, reshape2
data.table则不一定,有key的时候会比较快,
其他则跟data.frame差不多
environment: windows 7 64bit, R-3.2.0
machine: i7-3770K@4.4GHz, DDR3-2400 16G ram
※ 引述《locka (locka)》之铭言:
: 各位大大晚安,
: 我有一份总共九个字段约30万笔的原始资料,
: 因为想要分成4组画图
: 所以第一个想到的事就是新增第十个字段(称作group),
: 然后根据某个字段(假设为第八个字段好了)的值分组,
: 并填入第十个字段(group1~group4)
: 很笨的用for loop搭配if else写,可是速度整个悲剧...
作者: ntme (one shot one kill)   2015-05-22 19:30:00
作者: obarisk (OSWALT)   2015-05-23 07:54:00
for没写好可以用cmpfun救一下

Links booklink

Contact Us: admin [ a t ] ucptt.com