R语言笔记 多维列联表

table()和xtabs()都可以基于三个或更多的类别型变量生成多维列联表。margin.table()、

prop.table()和addmargins()函数可以自然地推广到高于二维的情况。另外,ftable()函

数可以以一种紧凑而吸引人的方式输出多维列联表

> mytable<-xtabs(~ Treatment+Sex+Improved,data=Arthritis)

> ftable(mytable)

                 Improved None Some Marked

Treatment Sex                             

Placebo   Female            19    7      6

          Male              10    0      1

Treated   Female             6    5     16

          Male               7    2      5

汇总数量

> margin.table(mytable)

[1] 84

> margin.table(mytable,1)

Treatment

Placebo Treated 

     43      41 

> margin.table(mytable,2)

Sex

Female   Male 

    59     25 

> margin.table(mytable,3)

Improved

  None   Some Marked 

    42     14     28 

> margin.table(mytable,c(1,3))

         Improved

Treatment None Some Marked

  Placebo   29    7      7

  Treated   13    7     21



---

> prop.table(mytable)

> ftable(addmargins(prop.table(mytable,c(1,2)),3))

                 Improved       None       Some     Marked        Sum

Treatment Sex                                                        

Placebo   Female          0.59375000 0.21875000 0.18750000 1.00000000

          Male            0.90909091 0.00000000 0.09090909 1.00000000

Treated   Female          0.22222222 0.18518519 0.59259259 1.00000000

          Male            0.50000000 0.14285714 0.35714286 1.00000000