R语言 根据列表的名称将列表的列表合并在R中

R语言 根据列表的名称将列表的列表合并在R中

问题描述

如何合并一个列表的列表,以便具有相同名称的列表对象在外层合并。

# List object 1
list_1 <- list(
  L1 <- list(
    A1 <- c(1, 2, 3)
  ),
  L2 <- list(
    A1 <- c(1, 2, 3)
))

names(list_1) <- c("layer_1", "layer_2")
names(list_1layer_1) <- c("A1")
names(list_1layer_2) <- c("A1")


# List object 2
list_2 <- list(
  L1 <- list(
    B1 <- c(4, 5, 6)
  ),
  L2 <- list(
    B1 <- c(4, 5, 6)
  ))

names(list_2) <- c("layer_1", "layer_2")
names(list_2layer_1) <- c("B1")
names(list_2layer_2) <- c("B1")

list_1_2 <- list(list_1, list_2)

现在我想要将list_1_2转换成这种结构(可能包含多个列表的列表,例如list_3,list_4等,但外层始终称为layer_1,layer_2和layer_3):

# End result
list_1_2 <- list(
  L1 <- list(
    A1 <- c(1, 2, 3),
    B1 <- c(4, 5, 6)
  ),
  L2 <- list(
    A1 <- c(1, 2, 3),
    B1 <- c(4, 5, 6)
  ))

names(list_1_2) <- c("layer_1", "layer_2")
names(list_1_2layer_1) <- c("A1", "B1")
names(list_1_2layer_2) <- c("A1", "B1")

list_1_2

解决方案

您可以使用

do.call("modifyList", list_1_2)

为了获得您想要的输出。这与调用以下代码是相同的 modifyList(list_1_2 [ [ 1 ]],list_1_2 [ [ 2 ]]) 但如果集合中有更多的列表,这也可以起作用

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程