显然在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会这样做?
希望你能帮助我。
答案 0 :(得分:1)
矩阵的元素存储在RAM中:1。第一列的元素,第二列的元素,......等等。因此,当apply()
构建结果对象时,第一个元素是第一列的元素......依此类推
(在内存中,矩阵元素的位置与FORTRAN类似。)