将函数应用于R中两个列表的所有组合

将函数应用于R中两个列表的所有组合,r,list,purrr,R,List,Purrr,我试图找到一种简洁的方法,将函数应用于列表的组合上,并可能扩展do并行计算。在我看来,purrr包中的cross()函数无法将列表作为输出返回 我试了一个嵌套的套圈 data1 <- list(a = xts(rep(2, 10), as.Date(1:10)), b = xts(rep(3, 10), as.Date(1:10)), c = xts(rep(4, 10), as.Date(1:10))) data2 <- list(a = xts(rep(1.5, 10), as.

我试图找到一种简洁的方法,将函数应用于列表的组合上,并可能扩展do并行计算。在我看来,purrr包中的cross()函数无法将列表作为输出返回

我试了一个嵌套的套圈

data1 <- list(a = xts(rep(2, 10), as.Date(1:10)), b = xts(rep(3, 10), as.Date(1:10)), c = xts(rep(4, 10), as.Date(1:10)))
data2 <- list(a = xts(rep(1.5, 10), as.Date(1:10)), b = xts(rep(2.5, 10), as.Date(1:10)), c = xts(rep(3.5, 10), as.Date(1:10)), d = xts(rep(4.5, 10), as.Date(1:10)))
data <- lapply(data1, function(x) lapply(data2, function(y) y+x))
data <- rlist::list.flatten(data)
sapply(data, first)
# similar to
# outer(c(2,3,4), c(1.5,2.5,3.5,4.5), '+')
# but returns new lists as output
data1