【问题标题】:Why do matrix column and row dimensions switch when using apply? [duplicate]为什么使用apply时矩阵列和行维度会切换? [复制]
【发布时间】:2016-01-21 13:49:51
【问题描述】:

显然这个问题在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 会这样做?

希望你能帮我解决这个问题。

【问题讨论】:

标签: r


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2018-05-16
    • 1970-01-01
    相关资源
    最近更新 更多