r - 向量化矩阵

标签 r vector statistics matrix

这个问题在这里已经有了答案:





Convert a matrix to a 1 dimensional array

(11 个回答)


4年前关闭。




我有一个 1000 x 1000 的大型 2D 矩阵。我想对其进行整形,使其成为一列(或一行)。例如,如果矩阵是:

A B C
1 4 7
2 5 8
3 6 9

我想把它变成:

1 2 3 4 5 6 7 8 9



我不需要保留列标题,只需要保留数据的顺序。我如何使用 reshape2 执行此操作(我认为哪个包最容易使用)?

为了澄清,我提到了 reshape因为我认为这是最好的方法。我可以看到有一些更简单的方法让我非常满意。

最佳答案

我认为很难找到比以下更紧凑的方法:

c(m)
[1] 1 2 3 4 5 6 7 8 9

但是,如果您想保留矩阵结构,那么对 dim 属性进行修改将是有效的:
dim(m) <- c(dim(m)[1]*dim(m)[2], 1)
m
      [,1]
 [1,]    1
 [2,]    2
 [3,]    3
 [4,]    4
 [5,]    5
 [6,]    6
 [7,]    7
 [8,]    8
 [9,]    9

将有更紧凑的方法来获取维度的乘积,但上述方法强调了 dim 属性是矩阵的二元素向量。在该示例中获得“9”的其他方法包括:
> prod(dim(m))
[1] 9
> length(m)
[1] 9

关于r - 向量化矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4570537/

相关文章:

RStudio 打开后是空白的

r - 在数据框中查找最大值按另一列中的值分组的行

r - 数据表与 dplyr : can one do something well the other can't or does poorly?

c++ - 程序在释放 vector 时收到 `SIGTRAP`

c++ - 在 C++ 中将类实例添加到对象层次结构的问题

ruby-on-rails - PDF 格式的条形图/图表生成

algorithm - 如何计算多标签分配的分类任务的成功率

r - 在 R 中的两个向量列表之间执行运算

c++ - 将 vector 拆分为多个数组/vector C++

python - 弹性网是如何使用的?