【问题标题】:How can I avoid the extra level of list nesting when storing lists in an array in R?将列表存储在 R 的数组中时,如何避免额外级别的列表嵌套?
【发布时间】: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。这是为什么呢?

【问题讨论】:

    标签: arrays r list


    【解决方案1】:

    使用[[fooA[[1, 1, 1]]$name

    【讨论】:

      猜你喜欢
      • 2020-11-01
      • 1970-01-01
      • 2014-10-12
      • 2018-10-16
      • 1970-01-01
      • 2015-08-06
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多