我在遇到Matrix
软件包的这种意外行为时
用matrix
对象替换Matrix
对象的行。这是一个说明问题的最小示例:
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
我将2x2矩阵替换为3x2矩阵的前两行:
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]
不会引发错误。