R通过新元素扩展每个列表级别



我正在寻找一种自动向现有列表添加新列表元素/级别的方法:

  • 我的真实用例有几千个元素要添加,所以下面添加两个元素的手动示例不再可行
  • 我需要一个列表,因为这是我试图访问的API所期望的格式

示例:

library(tidyverse)
x <- data.frame(id    = c(1,2,3),
label = c("label 1", "label 2", "label 3"),
category = c("cat 1", "cat 2", "cat 3"))
x_list <- x %>%
as.list() %>%
transpose()
names <- c("name 1", "name 2")
# Expected final format/output    
full_list <- list(list(name = names[1],
info = x_list),
list(name = names[2],
info = x_list))

所以我正在寻找一种方法来创建这个列表列表;"粘合在一起";来自具有"0"的CCD_ 1矢量的所有值;复制";而不是x_list

我对列表不太熟悉,所以有点吃力。我知道purrr软件包可以做一些很棒的列表事情,所以我很开放/期待一种有趣的方法,尽管我也很乐意接受基本R。谢谢。

使用map或使用相同参数对名称进行迭代,将map替换为lapply,在这种情况下不需要包。

library(purrr)
result <- map(names, function(nm) list(name = nm, info = x_list))
identical(result, full_list)
## [1] TRUE

最新更新