Tôi có danh sách không đối xứng, tức là số lượng phần tử trong từng danh sách phụ khác nhau. Làm thế nào tôi có thể chuyển đổi danh sách thành ma trận?R: chuyển đổi danh sách bất đối xứng thành ma trận - số phần tử trong mỗi danh sách phụ khác nhau
Dưới đây tôi bắt đầu với danh sách đối xứng và chuyển đổi nó thành ma trận theo hai cách khác nhau.
# 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
Tiếp theo tôi tạo ra một danh sách không đối xứng:
# 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
Đây là ma trận mong muốn:
# desired result
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 2 3 4 NA
# [2,] 5 6 7 8 9
# [3,] 10 11 12 13 NA