作者celestialgod (攸蓝)
看板R_Language
标题Re: [问题] 应用回圈於资料处理的效率
时间Sat Aug 8 01:21:24 2015
※ 引述《missingmini (just missing)》之铭言:
: 感谢C大和W大指教,学了不少新东西,许多观念也有茅塞顿开的感觉,真的非常感谢!
: 有些东西还是有小疑问:
: ==============================================================================
: 1. C大用来取代我第4段程式的写法如下
: ## 4
: tbl_right_ID = table(tbl_right$ID)
: tbl_right_ID[match(comm_ID$ID, names(tbl_right_ID))] %>% sum
: 想问的是为什麽要先把tbl_right$ID建成一个table,然後在match里面再取其names来用?
为了去算comm_ID$ID在tbl_right_ID里面出现几次
所以只能先unique names再用match去找到对应的ID,然後总和
计算个别ID次数跟unique names的动作可以一起做就会变成table,然後再找对应ID做总和
: 有没有方法可以直接用tbl_right物件来操作?
不太懂这个的目的是什麽
最简单的方法应该是
sum(tbl_right$ID %in% comm_ID$ID)
那时候没想到这个(摊手
: ==============================================================================
: 2. W大提到的回圈测时程式
: system.time({
: I = 0
: while (I < 1e7) {
: 10
: I = I + 1
: }
: })
: 为什麽要有"10"这一行? 有什麽特殊作用? 我试过把该行comment out再执行,结果
: 比原来快了 0.3 秒左右。
一个例子,R的回圈会受到东西影响
R就花了不少时间在直译10这一行上面,所以才造成这种情形
连结里面的范例是多加了很多()
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.163.8.105
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1438968087.A.6C8.html