首页 > 解决方案 > 在 R 中创建一个三向列联表

问题描述

我正在努力为以下情况创建一个列联表:

“在一项病例对照研究中记录了伦敦、曼彻斯特和纽卡斯尔的消化性溃疡和对照患者的血型。血型 A 和 O 以具有两个水平的因子 B 表示;所提到的城市以具有三个水平的因子 C 表示" 向量给出为

B=c("A","A","A","A","A","A","O","O","O","O","O","O")
C=c("L","L","M","M","N","N","L","L","M","M","N","N")
U=c("C","U","C","U","C","U","C","U","C","U","C","U")
count=c(4219,579,3775,246,5261,219,4578,911,4532,361,6598,396)

我尝试使用代码创建一个表

three=xtabs(~B+C+U,data=count)
ftable(three)

但是收到一条错误消息

Error in eval(predvars, data, env) : 
  numeric 'envir' arg not of length one

有没有办法解决这个问题并创建准确的表格?

标签: r

解决方案


您可以创建一个data.frame然后使用xtabs

xtabs(count~B+C+U, data.frame(B, C, U, count))
#, , U = C
#
#   C
#B      L    M    N
#  A 4219 3775 5261
#  O 4578 4532 6598
#
#, , U = U
#
#   C
#B      L    M    N
#  A  579  246  219
#  O  911  361  396

推荐阅读