Re: [問題] 應用迴圈於資料處理的效率

看板R_Language作者 (攸藍)時間10年前 (2015/08/08 01:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
※ 引述《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://www.ptt.cc/bbs/R_Language/M.1438968087.A.6C8.html
文章代碼(AID): #1LnEaNR8 (R_Language)
文章代碼(AID): #1LnEaNR8 (R_Language)