【发布时间】:2017-03-15 12:52:44
【问题描述】:
是否有“整理”矩阵/数组的最佳实践方法?在这种情况下,我所说的“整洁”是指
- 矩阵的每个元素一行
- 每个维度一列。这些列的元素为您提供了存储在该行上的矩阵元素的“坐标”
我在这里有一个二维矩阵的示例,但理想情况下这也适用于数组(此示例适用于 mm <- array(1:18, c(3,3,3)),但我认为此处粘贴太多)
mm <- matrix(1:9, nrow = 3)
mm
#> [,1] [,2] [,3]
#> [1,] 1 4 7
#> [2,] 2 5 8
#> [3,] 3 6 9
inds <- which(mm > -Inf, arr.ind = TRUE)
cbind(inds, value = mm[inds])
#> row col value
#> [1,] 1 1 1
#> [2,] 2 1 2
#> [3,] 3 1 3
#> [4,] 1 2 4
#> [5,] 2 2 5
#> [6,] 3 2 6
#> [7,] 1 3 7
#> [8,] 2 3 8
#> [9,] 3 3 9
【问题讨论】:
-
在什么意义上最好?什么样的矩阵?像您建议的表示对于稀疏矩阵来说更节省空间,但对于密集矩阵则不然 - 原始形式在那里表现出色。
-
如果您想要矩阵的稀疏表示,请使用 Matrix 包