假设我们有以下矩阵:
'2345','6543','7854'
我想将这个矩阵转换为长度等于列数的列表,这样每个第i列都用零填满。
即。对于这种特殊情况,我想要以下内容:
mat <- matrix(1:20,4,5)
mat
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
关于大型矩阵的一般情况我是如何做到这一点的?
答案 0 :(得分:3)
您可以这样做:
lapply(seq_len(ncol(mat)), function(j) {mat[,j] = 0; mat})
[[1]]
[,1] [,2] [,3] [,4] [,5]
[1,] 0 5 9 13 17
[2,] 0 6 10 14 18
[3,] 0 7 11 15 19
[4,] 0 8 12 16 20
[[2]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 9 13 17
[2,] 2 0 10 14 18
[3,] 3 0 11 15 19
[4,] 4 0 12 16 20
[[3]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 0 13 17
[2,] 2 6 0 14 18
[3,] 3 7 0 15 19
[4,] 4 8 0 16 20
[[4]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 0 17
[2,] 2 6 10 0 18
[3,] 3 7 11 0 19
[4,] 4 8 12 0 20
[[5]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 0
[2,] 2 6 10 14 0
[3,] 3 7 11 15 0
[4,] 4 8 12 16 0