gpt4 book ai didi

r - 加入 2 个嵌套列表

转载 作者:行者123 更新时间:2023-12-04 19:25:26 25 4
gpt4 key购买 nike

我想合并两个列表

list_1 <- list(LIST1 = list(list("a"), list("b"), list("c")))
list_2 <- list(LIST2 = list(list("1"), list("2"), list("3")))

期望输出:
combined_list <- list()
combined_list[[1]] <- c("a", "1")
combined_list[[2]] <- c("b", "2")
combined_list[[3]] <- c("c", "3")

我有一个讨厌的 for 循环方式来做这个,但我想用 purrr 来清理它吗?任何帮助表示赞赏!

最佳答案

这是一个递归连接相同结构的两个嵌套列表并保留该结构的变体

# Add additional checks if you expect the structures of .x and .y may differ
f <- function(.x, .y)
if(is.list(.x)) purrr::map2(.x, .y, f) else c(.x, .y)

res <- f( list_1, list_2 )
# ...is identical to...
# list(LIST1 = list(list(c("a","1")), list(c("b","2")), list(c("c","3"))))

然后,您可以根据需要展开结构。例如,要获得所需的输出,您可以执行
purrr::flatten(purrr::flatten(res))
# [[1]]
# [1] "a" "1"
#
# [[2]]
# [1] "b" "2"
#
# [[3]]
# [1] "c" "3"

关于r - 加入 2 个嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58756253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com