I have a nested list:

```
list1 <- list("A"=c(1,1,1), "B"=c(2,2,2), "C"=c(3,3,3))
list2 <- list("F1" = list1, "F2" = list1)
```

and I would like to get the last level of the list (containing the vector) as a dataframe and I would like to get the levels of the list as factors:

```
Level1 Level2 V1 V2 V3
1 F1 A 1 1 1
2 F1 B 2 2 2
3 F1 C 3 3 3
4 F2 A 1 1 1
5 F2 B 2 2 2
6 F2 C 3 3 3
```

The first part is nicely given by:

```
data.frame(matrix(unlist(list2), ncol=3, byrow=T))
```

However, I did not find a nice way to also get the list-level-names as factors in the same dataframe. Any ideas? :)

**Edit:** The procedure should work up to p dimensions.

`melt`

from "reshape2" has a method for `list`

s. Perhaps it can be used in this case. Something like this:

```
library(reshape2)
dcast(cbind(
coln = sequence(rapply(list2, length)),
melt(list2)), L1 + L2 ~ coln,
value.var = "value")
# L1 L2 1 2 3
# 1 F1 A 1 1 1
# 2 F1 B 2 2 2
# 3 F1 C 3 3 3
# 4 F2 A 1 1 1
# 5 F2 B 2 2 2
# 6 F2 C 3 3 3
```