如何创建列表列表,其中每个第一级列表元素都分配了相同的列表

时间:2018-01-30 02:01:25

标签: r list loops recursion vector

标题听起来很混乱,但这些是我在寻找解决方案时没有运气的搜索术语。

假设我有一个清单。我想为该列表的每个索引元素分配另一个列表。假设要分配的列表是:

listChildren <- vector("list", length(childrenNames))

另一个列表,它将是分配给每个条目的父列表,是:

parentList <- vector("list",length(parents))

我能弄清楚如何将parentList中的每个列表元素分配给listChildren的唯一方法是循环并分配给每个索引。这似乎非常不像。所以我正在寻找一种更有效的方法。

  i <- 1
  for (name in parentList) {
    # Bad!
    parentList[[i]] <- listChildren
    i <- i + 1
  }

2 个答案:

答案 0 :(得分:2)

据我所知,这只是:

react-native eject

验证(我认为?):

parentList[] <- list(listChildren)

这应该与在大型设备上进行快速测试时的效率相同:

listChildren <- as.list(1:5)
parentList <- vector("list", 5)

  i <- 1
  for (name in parentList) {
    # Bad!
    parentList[[i]] <- listChildren
    i <- i + 1
  }
pl1 <- parentList

listChildren <- as.list(1:5)
parentList <- vector("list", 5)

parentList[] <- list(listChildren)
pl2 <- parentList

identical(pl1, pl2)
#[1] TRUE

答案 1 :(得分:1)

以下情况如何?

purrr::map(.x = parentList, .f = function(x) {x <- listNames})