Re: [問題] 詢問.colSums的用法

看板R_Language作者 (只有神知道的世界)時間10年前 (2015/10/11 23:55), 10年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《a78998042a (Benjimine)》之銘言: : - 問題: 當你想要問問題時,請使用這個類別 : [問題類型]: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : [軟體熟悉度]: : 使用者(已經有用R 做過不少作品) : [問題敘述]: : 不懂.colSums的用法 : [程式範例]: : x = y = 1:10 : temp.m = outer(x, y, function(x, y) x+y) : c[1:3, 1:2] : [,1] [,2] : [1,] 2 3 : [2,] 3 4 : [3,] 4 5 : .colSums(temp.m, 3, 2) : [1] 9 18 : #原本我以為答案會是 9 12 : #但結果不是,.colSums 後面兩個參數是維度,不知道該怎麼用 : #有人知道他設定的方法嗎? 感謝! .colSums剛剛試了一下 是以從你產生的那個矩陣的第一列 要加幾次做一欄加總 舉例你產生的矩陣 第一列是 2 3 4 5 6 7 8 9 10 11 你的 .colSums(temp.m, 3,2) 3 指的是 取三個相加做為一欄加總 2 指的是 取兩欄 所以結果是 2 + 3 + 4 = 9 (前三個當第一欄) 5 + 6 + 7 = 18 (後三個當第二欄) 你可以測試其他數值填入 例如: .colSums(temp.m, 4,2) 他就會取四個數當一組作為一欄 就變成 2 + 3 + 4 + 5 = 14 第一欄 6 + 7 + 8 + 9 = 30 第二欄 那也可以再崩潰一點測試: .colSums(temp.m, 8,2) 那他就是從第一列開始取8個元素 不夠取下一列 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 44 10 + 11 + 3 + 4 + 5 + 6 + 7 + 8 = 54 (10,11這邊還在第一列) (3...開始就是開始取第二列元素) 以上大概是這個函數的用法 至於你問的 temp.m[1:3,1:2] 產生出來的 跟那個函數沒關係 你應該直接用colSums 前面不要加 "." code: colSums(temp.m[1:3,1:2]) 就可以得到你想要的結果 9 12 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.134.137 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1444578927.A.8B2.html ※ 編輯: OGCKM (36.231.134.137), 10/11/2015 23:55:59 ※ 編輯: OGCKM (36.231.134.137), 10/12/2015 00:00:34

10/12 02:17, , 1F
感謝解惑!
10/12 02:17, 1F
文章代碼(AID): #1M6ePlYo (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1M6ePlYo (R_Language)