相关疑难解决方法(0)

R:将非对称列表转换为矩阵 - 每个子列表中的元素数量不同

我有一个非对称列表,即每个子列表中的元素数量不同.如何将列表转换为矩阵?

下面我从对称列表开始,并以两种不同的方式将其转换为矩阵.

# create a symmetric list

my.list1    <- list(c(1,2,3,4),c(5,6,7,8),c(9,10,11,12))
my.list1

# convert symmetric list to a matrix

mat.a1  <- matrix( unlist(my.list1), nrow=length(my.list1), byrow=T )
mat.a1

# alternative method to convert symmetric list to a matrix

mat.b1 <- do.call(rbind, my.list1)
mat.b1
Run Code Online (Sandbox Code Playgroud)

接下来我创建一个非对称列表:

# create an asymmetric list

my.list2   <- list(c(1,2,3,4),c(5,6,7,8,9),c(10,11,12,13))
my.list2
Run Code Online (Sandbox Code Playgroud)

这是所需的矩阵:

# desired result

#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    2    3    4   NA
# [2,]    5    6    7    8    9
# [3,]   10   11   12 …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
1
解决办法
2722
查看次数

标签 统计

r ×1