首页 > 解决方案 > 用“矩阵”替换“矩阵”行时出错

问题描述

在用对象Matrix替换对象的行时,我遇到了包的这种意外行为。这是一个说明问题的最小示例:matrixMatrix

library(Matrix)
m1 = matrix(1:6, 3, 2)    # 3x2 matrix
M1 = Matrix(1:6, 3, 2)    # 3x2 Matrix
m2 = matrix(11:14, 2, 2)  # 2x2 matrix
M2 = Matrix(11:14, 2, 2)  # 2x2 Matrix

我将 3x2 矩阵的前两行替换为 2x2 矩阵:

m1[1:2, ] = m2
m1[1:2, ] = as.matrix(M2)
M1[1:2, ] = M2
# all ok

m1[1:2, ] = M2
# Error in m1[1:2, ] = M2 :
# number of items to replace is not a multiple of replacement length

在我看来,这不应该引发错误。毕竟操作在尺寸上是一致的。至少错误消息具有误导性。

奇怪m1[1:2, 1] = M2[, 1]的是不会抛出错误。

标签: rmatrix

解决方案


推荐阅读