arrays - 矩阵列表到不规则数组

标签 arrays r list matrix

如何将不同维度的矩阵列表转换为参差不齐的数组?

这是一个矩阵列表(在我的实际用例中,它们都是 2 列,行数可变):

set.seed(007)
my_list<- lapply(1:10, function(i) matrix(data = runif(sample(seq(2,10,2), 1)), ncol = 2))

看起来像这样:

my_list
[[1]]
           [,1]      [,2]
[1,] 0.39774545 0.3400624
[2,] 0.11569778 0.9720625
[3,] 0.06974868 0.1658555
[4,] 0.24374939 0.4591037
[5,] 0.79201043 0.1717481

[[2]]
           [,1]       [,2]
[1,] 0.77281195 0.45344777
[2,] 0.09630154 0.08470071

[[3]]
          [,1]      [,2]
[1,] 0.0087046 0.6394489
[2,] 0.9857371 0.2952232
[3,] 0.3165848 0.9967037

[[4]]
           [,1]      [,2]
[1,] 0.98873914 0.3622208
[2,] 0.06564574 0.6799935
[3,] 0.62703876 0.2637199
[4,] 0.49047504 0.1857143
[5,] 0.97102441 0.1851432

[[5]]
          [,1]      [,2]
[1,] 0.8470244 0.7905856
[2,] 0.4980761 0.8384639

[[6]]
          [,1]      [,2]
[1,] 0.7994758 0.4367756
[2,] 0.3819431 0.9042177
[3,] 0.7597012 0.3195349

[[7]]
          [,1]      [,2]
[1,] 0.8162891 0.8984762

[[8]]
          [,1]      [,2]
[1,] 0.5730689 0.3868313
[2,] 0.7200795 0.1627908
[3,] 0.7740586 0.1872283
[4,] 0.6277608 0.3912495
[5,] 0.7229893 0.2739012

[[9]]
          [,1]      [,2]
[1,] 0.5043918 0.7638404

[[10]]
          [,1]      [,2]
[1,] 0.5440542 0.3370636
[2,] 0.6590872 0.4245263
[3,] 0.4687284 0.2870151
[4,] 0.4818055 0.6011915

我想让它看起来像:

my_array
, , 1
           [,1]      [,2]
[1,] 0.39774545 0.3400624
[2,] 0.11569778 0.9720625
[3,] 0.06974868 0.1658555
[4,] 0.24374939 0.4591037
[5,] 0.79201043 0.1717481

, , 2
           [,1]       [,2]
[1,] 0.77281195 0.45344777
[2,] 0.09630154 0.08470071

, , 3
          [,1]      [,2]
[1,] 0.0087046 0.6394489
[2,] 0.9857371 0.2952232
[3,] 0.3165848 0.9967037

, , 4
           [,1]      [,2]
[1,] 0.98873914 0.3622208
[2,] 0.06564574 0.6799935
[3,] 0.62703876 0.2637199
[4,] 0.49047504 0.1857143
[5,] 0.97102441 0.1851432

, , 5
          [,1]      [,2]
[1,] 0.8470244 0.7905856
[2,] 0.4980761 0.8384639

, , 6
          [,1]      [,2]
[1,] 0.7994758 0.4367756
[2,] 0.3819431 0.9042177
[3,] 0.7597012 0.3195349

, , 7
          [,1]      [,2]
[1,] 0.8162891 0.8984762

, , 8
          [,1]      [,2]
[1,] 0.5730689 0.3868313
[2,] 0.7200795 0.1627908
[3,] 0.7740586 0.1872283
[4,] 0.6277608 0.3912495
[5,] 0.7229893 0.2739012

, , 9
          [,1]      [,2]
[1,] 0.5043918 0.7638404

, , 10
          [,1]      [,2]
[1,] 0.5440542 0.3370636
[2,] 0.6590872 0.4245263
[3,] 0.4687284 0.2870151
[4,] 0.4818055 0.6011915

诸如 simplify2arrayabind 之类的明显方法似乎仅在矩阵都具有相同维度时才起作用,所以我有点卡住了。

最佳答案

R 没有不规则数组类。您需要保持列表格式并解决困难,或者接受在“额外行”中包含 NA 值。

关于arrays - 矩阵列表到不规则数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291574/

相关文章:

mysql - 如何使用 MySQL View 或过程模拟 Explode() 函数

java - 数组值未填充

从 R 中的 data.table 中删除十六进制值

r - 将数字中的点转换为逗号

java - 无法在 OSX 上安装 R JavaGD 包

python - 如何在 Python 中的列表上编写索引循环?

java - 如何打印多维数组的所有索引?

php - 通过递归函数创建结构化数组

javascript - 将字符串数组转换为对象数组的最佳方法是什么?

python-3.x - 如何从提供的向量中找到最大的数字?