【发布时间】:2018-11-14 07:33:45
【问题描述】:
问题:
我有一个矩阵列表。我想将所有行转换为零,除非最后一行。我尝试了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
我的错误在哪里?有什么想法吗?
【问题讨论】:
标签: r