【发布时间】:2020-08-19 05:31:40
【问题描述】:
我在 R 中有一个表,其中行名是(默认情况下)A、B、C、...,列名是分配的 1、2、3、4、...。例如,
的输出x <- as.table(matrix(c(2,20,3,4,2,5,8,1,3),nrow=3,ncol=3,byrow=TRUE))
colnames(x) <- seq(1,ncol(x))
x
现在我想用我已经找到的仅包含 1 和 0 的矩阵 P 置换表格(重点是 A %*% P 将置换 A 的列以最大化其对角线)。在这种情况下,对于x,您可以获得 P as
P <- matrix(c(0,0,1,1,0,0,0,1,0),nrow=3,byrow=T)
注意 P 每行和每列只有一个“1”,其余为“0”。我的问题是:如果你做类似的事情
Y <- x %*% P
您会看到,虽然对角线排列正确,但 x 中的列名已被 P 中的矩阵列名替换(在本例中为 [,1] [,2] [,3])。
如何执行排列 (x %*% P),同时以 正确 顺序保留 x 中的列名?也就是说,当列移动时,列名跟随列。所以在这种情况下,列名将是2 3 1。
【问题讨论】:
-
你能显示预期的输出吗
标签: r sorting matrix contingency