从矩阵中按列选择元素以在 R 中创建新矩阵列表

NM_

假设我有u, v, w维度矩阵3 x nwhere n > 3所以u, v, w这样的形式:

> u
u11 u12 ... u1n
u21 u22 ... u2n
u31 u22 ... u3n

> v
v11 v12 ... v1n
v21 v22 ... v2n
v31 v22 ... v3n

> w
w11 w12 ... w1n
w21 w22 ... w2n
w31 w22 ... w3n

是否可以创建一个在 R 中3 x 3绑定u, vw列明智矩阵列表我的意思是我想获得表格列表:

[[1]]
u11 v11 w11
u21 v21 w21
u31 v31 w31

[[2]]
u12 v12 w12
u22 v22 w22
u32 v32 w32

.
.
.


[[n]]
u1n v1n w1n
u2n v2n w2n
u3n v3n w32n

我试过了

> do.call(cbind, list=(u,v,w))

但这不起作用。

数据示例

set.seed(1)
u = matrix(rnorm(15), nrow = 3)
v = matrix(rnorm(15), nrow = 3)
w = matrix(rnorm(15), nrow = 3)

> u
           [,1]       [,2]      [,3]       [,4]       [,5]
[1,] -0.6264538  1.5952808 0.4874291 -0.3053884 -0.6212406
[2,]  0.1836433  0.3295078 0.7383247  1.5117812 -2.2146999
[3,] -0.8356286 -0.8204684 0.5757814  0.3898432  1.1249309
> v
            [,1]      [,2]        [,3]        [,4]       [,5]
[1,] -0.04493361 0.8212212  0.78213630  0.61982575 -1.4707524
[2,] -0.01619026 0.5939013  0.07456498 -0.05612874 -0.4781501
[3,]  0.94383621 0.9189774 -1.98935170 -0.15579551  0.4179416
> w
           [,1]        [,2]       [,3]       [,4]       [,5]
[1,]  1.3586796 -0.05380504 -0.3942900  0.7631757  0.6969634
[2,] -0.1027877 -1.37705956 -0.0593134 -0.1645236  0.5566632
[3,]  0.3876716 -0.41499456  1.1000254 -0.2533617 -0.6887557

期望输出:

[[1]]
-0.6264538 -0.04493361  1.3586796
 0.1836433 -0.01619026 -0.1027877
-0.8356286  0.94383621  0.3876716

[[2]]
 1.5952808 0.8212212 -0.05380504
 0.3295078 0.5939013 -1.37705956
-0.8204684 0.9189774 -0.41499456

.
.
.

[[5]]
-0.6212406 -1.4707524  0.6969634
-2.2146999 -0.4781501  0.5566632
 1.1249309  0.4179416 -0.6887557
用户20650

您可以通过组合数据并使用array来设置维度来做到这一点

ar <- array(rbind(u, v, w), dim = c(3, 3, ncol(u))) 

如果你想要它,list那么asplit可以使用,其中数组在第 3 维中拆分

ars <- asplit(ar, 3)
ars[c(1,2,5)]
# [[1]]
#            [,1]        [,2]       [,3]
# [1,] -0.6264538 -0.04493361  1.3586796
# [2,]  0.1836433 -0.01619026 -0.1027877
# [3,] -0.8356286  0.94383621  0.3876716
# 
# [[2]]
#            [,1]      [,2]        [,3]
# [1,]  1.5952808 0.8212212 -0.05380504
# [2,]  0.3295078 0.5939013 -1.37705956
# [3,] -0.8204684 0.9189774 -0.41499456
# 
# [[3]]
#            [,1]       [,2]       [,3]
# [1,] -0.6212406 -1.4707524  0.6969634
# [2,] -2.2146999 -0.4781501  0.5566632
# [3,]  1.1249309  0.4179416 -0.6887557

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章