Вы можете сделать эту работу:
> # from ?ftable
> r <- ftable(Titanic, row.vars = 1:3)
> r
Survived No Yes
Class Sex Age
1st Male Child 0 5
Adult 118 57
... snip ...
Female Child 0 0
Adult 3 20
>
> # long format
> as.data.frame(r)
Class Sex Age Survived Freq
1 1st Male Child No 0
2 2nd Male Child No 0
3 3rd Male Child No 35
... snip ...
30 2nd Female Adult Yes 80
31 3rd Female Adult Yes 76
32 Crew Female Adult Yes 20
>
> # wide format, but do not care the col name
> data.frame(expand.grid(rev(attr(r, "row.vars"))), unclass(r))
Age Sex Class X1 X2
1 Child Male 1st 0 5
2 Adult Male 1st 118 57
3 Child Female 1st 0 1
... snip ...
14 Adult Male Crew 670 192
15 Child Female Crew 0 0
16 Adult Female Crew 3 20
>
> # using reshape2 library
> library(reshape2)
> dcast(as.data.frame(r), as.formula(paste(paste(names(attr(r, "row.vars")), collapse="+"), "~", paste(names(attr(r, "col.vars"))))))
Using Freq as value column: use value_var to override.
Class Sex Age No Yes
1 1st Male Child 0 5
2 1st Male Adult 118 57
3 1st Female Child 0 1
... snip ...
14 Crew Male Adult 670 192
15 Crew Female Child 0 0
16 Crew Female Adult 3 20