Just Running through this now.
walk(1:4,~ walk(1:6, ~ print(paste(.x, .y, sep = "-")),.y=.x)) [1] "1-1" [1] "2-1" [1] "3-1" [1] "4-1" [1] "5-1" [1] "6-1" [1] "1-2"
and
purrr::pwalk(expand.grid(1:4,1:6),~print(paste(.x, .y, sep = "-"))) [1] "1-1" [1] "2-1" [1] "3-1" [1] "4-1" [1] "1-2"
but to match your nested for loops exactly it fiddled and this works.
for (i in 1:4) { for (j in 1:6) { print(paste(i, j, sep = "-")) } } [1] "1-1" [1] "1-2" [1] "1-3" [1] "1-4" [1] "1-5" [1] "1-6" [1] "2-1" purrr::pwalk(expand.grid(1:6,1:4),~print(paste(.y, .x, sep = "-"))) [1] "1-1" [1] "1-2" [1] "1-3" [1] "1-4" [1] "1-5" [1] "1-6" [1] "2-1" #or even a map of this walk(1:4,~ walk(1:6, ~ print(paste(.y, .x, sep = "-")),.y=.x))
I have yet to figure out why the .y=.x is at the end though.
outer(1:4, 1:6, paste, sep = '-')gives a nice matrix.cross2(1:4, 1:6) %>% map_chr(paste, collapse = '-')gives a character vector.do.call(paste, c(expand.grid(1:4, 1:6), sep = '-'))%>%between consecutivepurrrmap-like functions. E.i pass the output list of one map as the input list to another map function.