2017-01-11 4 views
4

Ich spiele mit einigen der purrr Funktionen und entdeckte (zu meiner Freude) purrr::at_depth(.x, .depth, .f, ...), die für purrr::map(x, . %>% map(fun)) kurz ist.Iterate über zwei verschachtelte Listen parallel mit Purrr-Funktionen

Frage:Gibt es eine ähnliche Funktion oder eine richtige „purrr -Wege“, dasselbe zu tun, wenn ich zwei verschachtelte Listen, die ich parallel in

Als Beispiel iterieren wollen:

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]], `+`) 
} 

Dies funktioniert aber es ist ziemlich schmutzig und ich möchte die for-Schleife vermeiden.

Antwort

4

Sie haben Listen von Listen und + nicht für Listen vektorisiert, können Sie map2 zweimal verwenden, die ersten map2 Schleifen durch x, y gleichzeitig und die zweite map2 hinzufügen Teillisten in einem Element weise Art und Weise:

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

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

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


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

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

Schön, das ist, was ich gesucht habe. Danke! –

Verwandte Themen