在prop.table

时间:2019-01-21 15:40:57

标签: r contingency

我用xtabs做一个四向表

library(magrittr)
xtabs( ~ vs + gear + cyl, data = mtcars) %>% 
  ftable(row.vars = "gear")

返回

     vs   0        1      
     cyl  4  6  8  4  6  8
gear                      
3         0  0 12  1  2  0
4         0  2  0  8  2  0
5         1  1  2  1  0  0

现在,我要在mtcars$vs的水平范围内

如果我使用prop.table

xtabs( ~ vs + gear + cyl, data = mtcars) %>% 
  ftable(row.vars = "gear") %>% 
  prop.table(margin = 1) %>% 
  round(2)

我明白了

     vs     0              1          
     cyl    4    6    8    4    6    8
gear                                  
3        0.00 0.00 0.80 0.07 0.13 0.00
4        0.00 0.17 0.00 0.67 0.17 0.00
5        0.20 0.20 0.40 0.20 0.00 0.00

即-我希望vs == 0,齿轮== 3,圆柱体== 8的条目为1.00

1 个答案:

答案 0 :(得分:1)

尝试一下

 xtabs( ~ vs + gear + cyl, data = mtcars) %>% 
   ftable(row.vars = c("gear","vs")) %>% 
   prop.table(margin = 1) %>% 
   round(2)

结果是

        cyl    4    6    8
gear vs                   
3    0      0.00 0.00 1.00
     1      0.33 0.67 0.00
4    0      0.00 1.00 0.00
     1      0.80 0.20 0.00
5    0      0.25 0.25 0.50
     1      1.00 0.00 0.00