Я столкнулся с этим неожиданным поведением пакета 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
Я заменяю первые две строки матрицы 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]
не выдает ошибку.