看板 Statistics 關於我們 聯絡資訊
抱歉 打擾了 想請教兩個關於R的迴圈問題 Q1: 我現在手上有樣本 X[i] , i = 1:n ; 以及函數 f(x,y) Y[j] , j = 1:m 我現在想造一個 n ×m 的 matrix P 雙迴圈寫成 for (i in 1:n) { for (j in 1:m) { P[i,j] <- f(X[i], Y[j]) }} 我的問題在 n,m 大的時候他實在很慢 ..... 想請問版友能否賜教些更快的簡化作法?? Q2: 上述的問題我有嘗試過用 X <- X[1:n] , Y <- Y[1:m] Q <- f(X,Y) 來做,嘗試簡單的例子時 t(Q) 就會和 P 相等 但是實際操作的時候 除了第一行 t(Q)[,1] 和 P[,1] 會相等之外 其他位置均不相同, 想請教是哪裡出錯了呢 ? 不好意思 問題蠻陽春的 懇請板上的前輩不吝指教 <(_ _)> -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.14.158 ※ 編輯: laba1014 來自: 61.230.14.158 (05/17 05:02)
maoc:這要看你怎麼寫 f(x,y) 了, 寫得好的話可以用 sapply ?? 05/17 07:16
diplazium:我想是你產生t(Q)的f(X,Y)寫的方式無法處理X, Y vectors 05/17 09:12
diplazium:以你的例子,可用outer(X, Y, FUN="*")來替代雙重迴圈式 05/17 09:14
rockken:令函數f=function(a,b){a*b+8},outer(x, y, "f")。 05/17 09:28
clickhere:你的f()?? 05/17 13:44
laba1014:感謝樓上的幾位前輩指教 我成功壓縮計算時間了 05/19 05:13
laba1014:真的非常感謝 m(_ _)m 05/19 05:13