作者celestialgod (攸蓝)
看板R_Language
标题Re: [讨论] for loop与*apply function请益
时间Fri May 22 12:52:45 2015
我不知道你的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:
[email protected], DDR3-2400 16G ram
※ 引述《locka (locka)》之铭言:
: 各位大大晚安,
: 我有一份总共九个栏位约30万笔的原始资料,
: 因为想要分成4组画图
: 所以第一个想到的事就是新增第十个栏位(称作group),
: 然後根据某个栏位(假设为第八个栏位好了)的值分组,
: 并填入第十个栏位(group1~group4)
: 很笨的用for loop搭配if else写,可是速度整个悲剧...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.225.239.88
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1432270370.A.9D4.html
※ 编辑: celestialgod (36.225.239.88), 05/22/2015 12:59:46
1F:推 ntme: 推 05/22 19:30
2F:推 obarisk: for没写好可以用cmpfun救一下 05/23 07:54