在R中合并两个平坦的列联表(ftable)?

时间:2014-11-12 19:44:34

标签: r rbind flat

我正在制作一系列频率/列联表,理想情况下我想将它们合并为一个

tab1 <- ftable(xtabs( ~Survived+Age, Titanic))
tab2 <- ftable(xtabs( ~Class+Age, Titanic))

rbind将它们组合在一起,但是你丢失了行名和列名。

我想知道我是否应该尝试从变量中获取级别并将它们放入(但这似乎是一个很好的机会来输入错误的顺序)。我想我可以尝试转换为data.frame然后组合,但我想得到一些输入。

2 个答案:

答案 0 :(得分:2)

组合表不允许行变量有多个名称。

tab <- rbind(tab1, tab2)
class(tab) <- "ftable"
attr(tab, "col.vars") <- attr(tab1, "col.vars")
attr(tab, "row.vars") <- list(Var = unlist(c(attr(tab1, "row.vars"), 
                                             attr(tab2, "row.vars"))))

tab
#      Age Child Adult
# Var                 
# No           8     8
# Yes          8     8
# 1st          4     4
# 2nd          4     4
# 3rd          4     4
# Crew         4     4

答案 1 :(得分:0)

我也有这个问题。我最终生成列联表作为矩阵,您可以在其中指定特定的行和列名称,然后您可以转换回data.frame或另存为.csv文件。

相关问题