Arrays 在R中的数组中存储列表时,如何避免额外级别的列表嵌套?
我试图将一些以列表表示的结构存储到多维数组布局中。下面是一个示例,首先我们从一些计算返回此类结构的列表:Arrays 在R中的数组中存储列表时,如何避免额外级别的列表嵌套?,arrays,r,list,Arrays,R,List,我试图将一些以列表表示的结构存储到多维数组布局中。下面是一个示例,首先我们从一些计算返回此类结构的列表: set.seed(2017) fooL <- lapply(1:8, function(i) { foo <- list(barV=runif(sample(5,1)), name=paste(letters[sample(26,3)], collapse='')) }) 但是现在如果我检查这个数组的一个元素,比如说strfooA[1,1,1],我看到它现在是一个长度为1的列表
set.seed(2017)
fooL <- lapply(1:8, function(i) { foo <- list(barV=runif(sample(5,1)), name=paste(letters[sample(26,3)], collapse='')) })
但是现在如果我检查这个数组的一个元素,比如说strfooA[1,1,1],我看到它现在是一个长度为1的列表,它的第一个元素是foo,而不是foo。有没有办法避免在这里创建这种额外的间接层次?也就是说,正如我能说傻子[[1]]$name一样,我也希望我能做fooA[1,1,1]$name,相反,我必须说fooA[1,1,1][[1]]$name。为什么会这样?使用[[:fooA[[1,1,1]]]$name
fooA <- array(fooL, dim=c(2,2,2))