附加到嵌套列表的内部列表级别

时间:2019-03-01 20:06:33

标签: r list nested append

好,所以我需要以特定方式以编程方式合并两个嵌套列表。很难解释,最简单的事情就是提供一个玩具模型。假设我有两个嵌套列表,如下所示:

final Person person = Person.builder().name("antonio").build();

final ResponseEntity response = restTemplate.postForEntity(
         new URL("http://localhost:" + port + "/person/aggregate").toString(),
         person, Person.class);

列表如下:

a <- list(101:110, 201:210)
b <- list(111:120, 211:220)
d <- list(311:320, 311:320)
nestlist1 <- list(a, b)
nestlist2 <- list(d)

鉴于上面的两个嵌套列表,我如何编写代码(基于R或purrr)以使列表看起来像这样:

> nestlist1
[[1]]
[[1]][[1]]
 [1] 101 102 103 104 105 106 107 108 109 110

[[1]][[2]]
 [1] 201 202 203 204 205 206 207 208 209 210


[[2]]
[[2]][[1]]
 [1] 111 112 113 114 115 116 117 118 119 120

[[2]][[2]]
 [1] 211 212 213 214 215 216 217 218 219 220


> nestlist2
[[1]]
[[1]][[1]]
 [1] 311 312 313 314 315 316 317 318 319 320

[[1]][[2]]
 [1] 311 312 313 314 315 316 317 318 319 320

1 个答案:

答案 0 :(得分:2)

您可以使用Map,然后创建一个附加列表的函数:

a <- list(101:110, 201:210)
b <- list(111:120, 211:220)
d <- list(311:320, 311:320)

nestlist1 <- list(a, b)
nestlist2 <- list(d)

wantedlist <- list()
append_list <- function(l1, l2) c(l1, list(l2))
Map(f = append_list, nestlist1, unlist(nestlist2, recursive = FALSE))

[[1]]
[[1]][[1]]
 [1] 101 102 103 104 105 106 107 108 109 110

[[1]][[2]]
 [1] 201 202 203 204 205 206 207 208 209 210

[[1]][[3]]
 [1] 311 312 313 314 315 316 317 318 319 320


[[2]]
[[2]][[1]]
 [1] 111 112 113 114 115 116 117 118 119 120

[[2]][[2]]
 [1] 211 212 213 214 215 216 217 218 219 220

[[2]][[3]]
 [1] 311 312 313 314 315 316 317 318 319 320