R: 合并两个二维列联表

3
> t <- read.csv("data.csv", sep=';')
> t
     sex pacemaker  smoker
1 female        no   never
2 female        no   never
3   male        no   never
4   male        no  former
5   male       yes  former
6   male       yes  former
7 female       yes current
8 female       yes  former
9 female        no current
> xtabs(~smoker+sex, data=t)
              sex
smoker    female male
  current      2    0
  former       1    3
  never        2    1
> xtabs(~smoker+pacemaker, data=t)
         pacemaker
smoker    no yes
  current  1   1
  former   1   3
  never    3   0

我该如何在R中合并两个二维交叉表?

期望的输出结果:

          |     sex      |  pacemaker
  smoker  | female male  |   no  yes
  current |    2    0    |    1   1
  former  |    1    3    |    1   3
  never   |    2    1    |    3   0

2
请不要将您的数据框命名为t。那是转置函数的名称。 - G5W
1个回答

3
我已将您的数据框重命名为df。这段代码应该对您有效。
cbind(xtabs(~smoker+sex, data=df), xtabs(~smoker+pacemaker, data=df))
        female male no yes
current      2    0  1   1
former       1    3  1   3
never        2    1  3   0

您可能希望重命名起搏器列标题。

colnames(XTab)[3:4] = c("Pacemaker_no", "Pacemaker_yes")
XTab
        female male Pacemaker_no Pacemaker_yes
current      2    0            1             1
former       1    3            1             3
never        2    1            3             0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接