首页 > 解决方案 > 如何在R中做一个三路频率表?

问题描述

我正在尝试在R中编写一个三向频率表,但由于我拥有的变量数量,我遇到了困难。我有 4 列变量,抑郁(是,否,NA- 我需要保留 NA),欠(是,否,NA),正常(是,否,NA)和肥胖(是,否,NA)。我希望桌子看起来像这样?

                      Depression
                 Yes     No     NA
Weight      
Under            70      20     5


Normal           90      68     8


Obese            40      20     6

我试过做交叉表,但它会给我一个表格,其中癌症被列为城市之一:(我真的很感谢任何先进的帮助!

顺便说一句,我已经尝试了表格包中的表格,但是当我生成降价时它给了我一个错误

标签: rfrequencycrosstab

解决方案


常规table功能可以做到。考虑:

# Mock data:
n <- 100
mys <- function(x) sample(x, size = n, replace = TRUE)
A <- mys(letters[1:3])
B <- mys(LETTERS[1:4])
C <- mys(paste(1:5))

# Three way table:
table(A,B,C,  useNA = "always")
#, , C = 1
#
#      B
#A      A B C D <NA>
#  a    0 2 0 1    0
#  b    2 1 0 0    0
#  c    3 0 2 2    0
#  <NA> 0 0 0 0    0
#
#, , C = 2
#
 #     B
#A      A B C D <NA>
#  a    2 1 2 2    0
#  b    2 4 0 1    0
#  c    0 5 5 3    0
#  <NA> 0 0 0 0    0
#
# . . .

useNA然后可以根据需要设置参数。见?table。之后,您可以根据需要对 3 路表进行子集/切片。


推荐阅读