使用apply时,为什么矩阵列和行尺寸会切换?

时间:2016-01-21 13:49:52

标签: r

显然在here之前已经提出了这个问题,感谢您的快速回答!

以下问题最近令我困惑,我希望有人可以帮助我。使用apply时,矩阵的尺寸最终会被切换。见下面的例子:

> A = matrix(c(2, 4, 3, 1, 5, 7), nrow=2, ncol=3, byrow = TRUE)
> A
     [,1] [,2] [,3]
[1,]    2    4    3
[2,]    1    5    7

> M = c(1, 2, 3)

> B = apply(A, 1, "*", M)
> B
     [,1] [,2]
[1,]    2    1
[2,]    8   10
[3,]    9   21

我知道这很容易转换,所以这不是问题所在。但我的问题是,为什么R会这样做?

希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

矩阵的元素存储在RAM中:1。第一列的元素,第二列的元素,......等等。因此,当apply()构建结果对象时,第一个元素是第一列的元素......依此类推 (在内存中,矩阵元素的位置与FORTRAN类似。)