【发布时间】:2017-11-04 18:44:43
【问题描述】:
我正在尝试将一些结构(表示为列表)存储到多维数组布局中。这是一个例子,首先我们从一些计算中返回一个此类结构的列表:
set.seed(2017)
fooL <- lapply(1:8, function(i) { foo <- list(barV=runif(sample(5,1)), name=paste(letters[sample(26,3)], collapse='')) })
如果我们使用str 进行检查,我们会看到其中的每一个都是名称为barV 的列表,numeric 是一个向量,name 是一个字符向量
接下来我想将它们存储在一个多维数组中,为此我执行以下操作:
fooA <- array(fooL, dim=c(2,2,2))
但是现在如果我检查这个数组的一个元素(比如str(fooA[1,1,1])),我看到它现在是一个长度为 1 的列表,它的第一个元素是 foo,而不是简单的 foo。有没有办法避免在这里创建的这种额外的“间接”级别? IE。我本来可以说fooL[[1]]$name 能够做到fooA[1,1,1]$name,而不是我不得不说fooA[1,1,1][[1]]$name。这是为什么呢?
【问题讨论】: