[問題] 取矩陣的非對角線元素之組合名稱

作者: andrew43 (討厭有好心推文後刪文者)   2014-05-02 18:14:28
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
對於具有 colnames 和 rownames 的一個 matrix,
該如何取得所有非對角線元素的 colnames 和 rownames 的組合的字串向量?
[程式範例]:
M <- matrix(1:25, 5)
colnames(M) <- c("a","b","c","d","e")
rownames(M) <- c("a","b","c","d","e")
可得到 M
# a b c d e
#a 1 6 11 16 21
#b 2 7 12 17 22
#c 3 8 13 18 23
#d 4 9 14 19 24
#e 5 10 15 20 25
接下來,我想取得一個字串向量 mynames 使其結果為
c("b-a" , "c-a", "d-a", "e-a", "c-b", ... , "e-c", "e-d")
也就是矩陣 M 的左下側非對角線元素的列名與欄名組合。
請教有沒有什麼方式可以快速達成?
用 loop 是可以達成,但我想應該有更乾淨的辦法。
作者: clickhere (It's time to go home.)   2014-05-02 20:48:00
cbind(rownames(M)[c(2:5,3:5,4:5,5)],rep(colnames(M),,c(4,3,2,1))paste by row with sep="-"

Links booklink

Contact Us: admin [ a t ] ucptt.com