我想替换列表中包含的矩阵的对角元素。
w <- matrix(rnorm(25), 5)
t <- matrix(seq(1, 25, 1), 5)
s <- list(w, t)
如果我尝试这个,它会起作用。
diag(s[[1]]) <- rep(0, 5)
diag(s[[2]]) <- rep(0,5)
但是如果我尝试这个,我会收到一条错误消息。
lapply(1:2, function(i){diag(s[[i]]) <- rep(0, nrow(s[[i]]))})
所以有两件事是错误的。首先是“lapply-loop”。第二个是nrow(s[[i]])
。但为什么。我不明白这一点。谢谢。