【发布时间】:2018-03-05 21:43:21
【问题描述】:
我有一个对称矩阵s 定义为:
s<-matrix(1:25,5)
s[lower.tri(s)] = t(s)[lower.tri(s)]
dimnames(s) <- list(LETTERS[1:5], LETTERS[1:5])
s
A B C D E
A 1 6 11 16 21
B 6 7 12 17 22
C 11 12 13 18 23
D 16 17 18 19 24
E 21 22 23 24 25
另外还有一个向量t定义为:
t <- seq(1,10)
names(t) <- c('C_A', 'E_A', 'E_B', 'E_C', 'E_D', 'D_A', 'D_B', 'D_C', 'C_B', 'A_B')
现在我想将t的元素添加到s的上下三角形元素中,这样t的元素名称为'C_A'被添加到@的元素中987654329@,行和列名称分别为“C”和“A”(或“A”和“C”),t 的名称为“E_A”的元素被添加到 s 的元素中,行和'E' 和 'A'(或 'A' 和 'E')等列名。例如,s['A','B'] 和 s['B','A'] 都应该是由 t['A_B'] 添加,对于所有其他非对角元素也是如此。对角线什么也不做。
实现此目的的优雅方法是什么?
【问题讨论】:
-
你试过什么?您已链接到 your previous question 中的相关帖子