Проблема:
У меня есть список матриц. Я хотел бы преобразовать все строки, кроме последней, в ноль. Я попробовал функцию lapply
, но она не работает должным образом.
Пример:
x <- matrix(3,4,4)
y <- matrix(5,4,5)
z <- list(x,y)
NewZ <- lapply(1:2, function(i) z[[i]][-nrow(z[[i]]), ] <- 0)
Lapply возвращает мне это:
> NewZ
[[1]]
[1] 0
[[2]]
[1] 0
Я бы хотел получить такие матрицы:
> z[[1]][-nrow(z[[1]]),] <- 0
> z[[1]]
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 0 0 0 0
[3,] 0 0 0 0
[4,] 3 3 3 3
> z[[2]][-nrow(z[[2]]),] <- 0
> z[[2]]
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 0 0 0 0 0
[3,] 0 0 0 0 0
[4,] 5 5 5 5 5
Где моя ошибка? Любая идея, пожалуйста?