取消R中矩阵列表的结构

时间:2017-01-02 09:12:34

标签: r list matrix

我有一个带有嵌套矩阵的对象类型列表,类似于以下示例:

[[1]]
    [,1] [,2]
[1,]  A    A
[2,] A1   A2
[[2]]
    [,1]
[1,]  B 
[2,]  C
[[3]]
      NA

我需要取消列表每个矩阵并转动结果,因为我需要获得具有以下结构的data.frame:

A   A1
A   A2
B   C

我尝试使用unlist函数执行此操作,但它取消了所有内容(也将参数声明为递归为False),结果为:

A, A1, A2, B, C, NA 

道歉,因为此刻我还没有提供代码,我无法粘贴详细的示例。当我在家时,我会更新消息。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

L <- list(matrix(c("A", "A1", "A", "A2"), 2), matrix(c("B", "C"), ncol = 1), NA)

do.call(rbind, lapply(L, function(x) if (length(x) == 1L && is.na(x)) NULL else t(x)))
#     [,1] [,2]
#[1,] "A"  "A1"
#[2,] "A"  "A2"
#[3,] "B"  "C