看板 Statistics 關於我們 聯絡資訊
[軟體程式類別]: R [程式問題]: 計算速度 [軟體熟悉度]: 中(3個月到1年) [問題敘述]: 請問一下 R的迴圈很慢這個缺點 有沒有什麼好方法可以克服? 我知道用 x[ 1:54575 , ] 再配上矩陣專用的 row or col function 可以算很快 但是每次都要避免使用迴圈實在是很痛苦也很不靈活 常常寫了迴圈 然後跑了老半天在等的時候 才想出比較快的寫法 請問有什麼幫迴圈加速的辦法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.177.165 ※ 編輯: gsuper 來自: 140.113.177.165 (02/10 01:01) ※ 編輯: gsuper 來自: 140.113.177.165 (02/10 01:03) ※ 編輯: gsuper 來自: 140.113.177.165 (02/10 01:04)
west1996:似乎是天然缺陷,只能盡量避免用多層迴圈? 02/10 01:10
andrew43:有一些簡單的概念, 這記憶體的使用及 IO 有關 02/10 01:21
andrew43:不過直譯式語言本來就容易有這個問題, 多少都要避免. 02/10 01:22
wlsherica:少寫幾層迴圈? 02/10 01:27
ADORIAN:迴圈交給 C 來做.. 02/10 12:40
ADORIAN:R call C 在 linux 下很方便 02/10 12:42
ADORIAN:www.sfu.ca/~sblay/R-C-interface.ppt 02/10 12:45
不好意思 這投影片應該已經是很新手取向了 不過我還是沒辦法直覺的使用 可否舉個例子給我看? 比方說 手上有個 50000 * 10 的矩陣 目的是要算 rowmeans 迴圈寫法 (約10分鐘) meanVector <- as.vector(NULL) i=1 for(i in 1:50000) { meanVector <- c( meanVector , mean(x[i,]) ) } x <- cbind (x,meanVector) rm(i,meanVector) 這樣要怎麼用投影片的 function 去轉阿? ###### 我知道 rowMeans() 這個 function ###### ###### 這裡只是舉例 , 0rz ###### ※ 編輯: gsuper 來自: 140.113.239.247 (03/01 20:48) ※ 編輯: gsuper 來自: 140.113.239.247 (03/01 20:49)