簡體   English   中英

基數 R 中的非嵌套矩陣

[英]Unnest matrix in base R

考慮這種形式的嵌套矩陣,其中每個元素都是向量、列表或數據框:

m <- matrix(replicate(3, list(1:3)))
m
#     [,1]     
#[1,] integer,3
#[2,] integer,3
#[3,] integer,3

一個人如何“取消”這個矩陣? 即得到這個輸出:

unnestFunction(m)
#[[1]]
#[1] 1 2 3
#
#[[2]]
#[1] 1 2 3
#
#[[3]]
#[1] 1 2 3

使用c

c(m)
#[[1]]
#[1] 1 2 3
#
#[[2]]
#[1] 1 2 3
#
#[[3]]
#[1] 1 2 3

“只使用c() ”是一種方法。 您還可以刪除維度屬性:

dim(m) <- NULL

str(m)
#------------
List of 3
 $ : int [1:3] 1 2 3
 $ : int [1:3] 1 2 3
 $ : int [1:3] 1 2 3

一個可能的解決方案:

m[T]

#> [[1]]
#> [1] 1 2 3
#> 
#> [[2]]
#> [1] 1 2 3
#> 
#> [[3]]
#> [1] 1 2 3

另一種可能的解決方案:

lapply(m, identity)

#> [[1]]
#> [1] 1 2 3
#> 
#> [[2]]
#> [1] 1 2 3
#> 
#> [[3]]
#> [1] 1 2 3

你可以試試

> m[,1]
[[1]]
[1] 1 2 3

[[2]]
[1] 1 2 3

[[3]]
[1] 1 2 3

1)嘗試c

m <- matrix(replicate(3, list(1:3)))
c(m)

給予

[[1]]
[1] 1 2 3

[[2]]
[1] 1 2 3

[[3]]
[1] 1 2 3

2)使用內部表示可能不是一個好主意,但這也確實有效:

structure(m, .Dim = NULL)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM