【问题标题】:Extract matrices from a list of mixed data types从混合数据类型列表中提取矩阵
【发布时间】:2013-05-20 14:26:55
【问题描述】:

我有一个列表,格式如下:

x = replicate(3, list(m = matrix(rnorm(16), 4, 4), s = rnorm(1)), simplify=FALSE)
x
#[[1]]
#[[1]]$m
#          [,1]     [,2]     [,3]     [,4]
#[1,] -0.412209 -0.50227 -2.62340  0.17549
#[2,]  1.344723 -1.52060 -0.59093  1.19701
#[3,] -0.016289 -0.88286 -0.33307 -0.48351
#[4,]  0.060760  0.32131  1.16896 -0.45940
#
#[[1]]$s
#[1] -1.3588
#
#
#[[2]]
#[[2]]$m
#         [,1]     [,2]     [,3]    [,4]
#[1,] -0.15345 -0.82106  0.93839 1.46115
#[2,]  1.60950 -2.35833  0.89621 0.35542
#[3,] -0.17792  0.54444 -0.17414 0.63614
#[4,]  0.85038  0.84373  0.24687 0.60172
#
#[[2]]$s
#[1] 3.6597
#
#
#[[3]]
#[[3]]$m
#         [,1]     [,2]     [,3]     [,4]
#[1,]  1.27724  0.19397  0.47393 -0.66518
#[2,] -0.75244  1.16476  1.74843 -1.03732
#[3,]  0.99433 -1.06129  0.15674 -0.83856
#[4,]  0.18471  1.30852 -0.38024  0.88538
#
#[[3]]$s
#[1] 0.49526

目标是从上面的列表中获取矩阵列表,以及标量向量。如何才能做到这一点?谢谢!

【问题讨论】:

    标签: r data-manipulation


    【解决方案1】:

    你的意思是这样的......?

    sapply(x, '[', 'm')         # List of matrices
    unlist(sapply(x, '[', 's')) # Vector of scalars
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多