Transpor uma lista de listas
Eu tenho uma lista que contém entradas de lista e preciso transpor a estrutura. A estrutura original é retangular, mas os nomes nas sub-listas não correspondem.
Aqui está um exemplo:
ax <- data.frame(a=1,x=2)
ay <- data.frame(a=3,y=4)
bw <- data.frame(b=5,w=6)
bz <- data.frame(b=7,z=8)
before <- list( a=list(x=ax, y=ay), b=list(w=bw, z=bz))
O que eu quero:
after <- list(w.x=list(a=ax, b=bw), y.z=list(a=ay, b=bz))
Eu não me importo com os nomes da lista resultante (em qualquer nível).
Claramente isso pode ser feito explicitamente:
after <- list(x.w=list(a=before$a$x, b=before$b$w), y.z=list(a=before$a$y, b=before$b$z))
mas isso é feio e só funciona para uma estrutura 2x2. Qual é a maneira idiomática de fazer isso?