簡體   English   中英

使用purrr函數並行迭代兩個嵌套列表

[英]Iterate over two nested lists in parallel using purrr functions

我正在玩一些purrr函數,發現(令我高興) purrr::at_depth(.x, .depth, .f, ...)purrr::map(x, . %>% map(fun))縮寫purrr::at_depth(.x, .depth, .f, ...) purrr::map(x, . %>% map(fun))

問題: 當我有兩個要並行迭代的嵌套列表時,是否有類似的功能或執行相同操作的正確“ purrr ”?

舉個例子:

x <- list(list(10, 20), list(30, 40))
y <- list(list(1, 2), list(3, 4))

a <- list()
for(i in seq_along(x)) {
   a[[i]] <- map2(x[[i]], y[[i]], `+`) 
}

這可以工作,但是它很臟,我想避免for循環。

您具有列表列表,並且+沒有針對列表進行矢量化,可以使用map2兩次,第一個map2同時循環遍歷x,y,第二個map2以元素明智的方式添加子列表:

map2(x, y, map2, `+`)

#[[1]]
#[[1]][[1]]
#[1] 11

#[[1]][[2]]
#[1] 22


#[[2]]
#[[2]][[1]]
#[1] 33

#[[2]][[2]]
#[1] 44

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM