[程式] [R] Warning:較長物件長度不是較短物件長度的倍數

看板Statistics作者 (花開堪折直須折)時間15年前 (2010/09/04 11:25), 編輯推噓1(109)
留言10則, 3人參與, 最新討論串1/1
小弟在執行程式時,碰到一個問題 程式簡化如下 K=6:8 Pos=function(x,y) { sum (x+y+K) } 則Pos(x=1,y=0)得到的結果是24 這沒有問題 若給定 x=1:4; y=0:3 Pos(x,y) 我預期會得到一個長度為4的向量 即 [ Pos(x=1,y=0), Pos(x=2,y=1), Pos(x=3,y=2), Pos(x=4,y=3) ] 結果卻出現如下訊息 Warning message: In x + y + K : longer object length is not a multiple of shorter object length 得到的Pos(x,y)也僅為單一的數值 我知道它是指 K 的長度與 x, y 的長度不符 但我不曉得為何會出現這樣的問題 如果我想照我的預期得到一個長度為4的向量 該如何修正我的程式 謝謝指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.77.169 ※ 編輯: hctud 來自: 122.118.77.169 (09/04 11:27) ※ 編輯: hctud 來自: 122.118.77.169 (09/04 11:29)

09/04 15:56, , 1F
你要不要用class確認每一步都是向量?搞不好在哪裡變成矩陣
09/04 15:56, 1F

09/04 15:57, , 2F
或者是短向量一定要放在前面? try this sum(K+x+y)
09/04 15:57, 2F

09/05 10:19, , 3F
手邊沒自己的電腦無法嘗試 但我想知道該如何將 (x,y)
09/05 10:19, 3F

09/05 10:21, , 4F
以一對對的型式代入Pos 而非以向量的型式代入
09/05 10:21, 4F

09/05 10:22, , 5F
因為我最終的目的是使用outer(x,y, Pos)
09/05 10:22, 5F

09/05 10:24, , 6F
但似乎是因為Pos的運算中有向量K的存在而產生問題
09/05 10:24, 6F

09/05 10:26, , 7F
最後小弟是以for迴圈 土法煉鋼解決的 @@
09/05 10:26, 7F

09/06 15:00, , 8F
Pos=function(x,y) {x+y+K} sum()是多餘的
09/06 15:00, 8F

09/06 15:11, , 9F
我覺得還是別用這種容易混淆的寫法 , 將來自己會讀不懂
09/06 15:11, 9F

09/06 16:13, , 10F
你不要下function跑跑看就知道了 sum只會給一個加總
09/06 16:13, 10F
文章代碼(AID): #1CWRmOl- (Statistics)