[R语言统计]频数表

本文通过实例详细介绍了如何在R语言中创建和使用频数表及列联表,包括一维和二维列联表的创建、转换为百分比形式以及添加边际和等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

频数表在统计学中是一个非常基本并且重要的概念,我们这里就来讲解它的基本用法。

首先我们需要载入数据,并查看数据的基本信息

 

[python]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. install.packages('vcd') #安装vcd包,其中有可以利用的数据Arthritis  
  2. library(vcd)  
  3.   
  4. 载入需要的程辑包:grid  
  5. > head(Arthritis)#################################################  
  6. ID Treatment  Sex Age Improved  
  7. 57   Treated Male  27     Some  
  8. 46   Treated Male  29     None  
  9. 77   Treated Male  30     None  
  10. 17   Treated Male  32   Marked  
  11. 36   Treated Male  46   Marked  
  12. 23   Treated Male  58   Marked  
  13. class(Arthritis)################################################  
  14. [1] "data.frame"  
  15. > summary(Arthritis)##############################################  
  16. ID          Treatment      Sex          Age          Improved   
  17. Min.   : 1.00   Placebo:43   Female:59   Min.   :23.00   None  :42    
  18. 1st Qu.:21.75   Treated:41   Male  :25   1st Qu.:46.00   Some  :14    
  19. Median :42.50                            Median :57.00   Marked:28    
  20. Mean   :42.50                            Mean   :53.36                
  21. 3rd Qu.:63.25                            3rd Qu.:63.00                
  22. Max.   :84.00                            Max.   :74.00  

 

 

从结果中看以看出,Arthritis是一个data.frame结构的数据。其中ID和Age是numeric型的数据,其他三个都是factor型的数据。

创建一维列联表

 

[python]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. > a<-table(Arthritis$Improved)#创建一维列联表  
  2. class(a)                    #查看变量a的类型  
  3. [1] "table"  
  4. > a  
  5.   
  6. None   Some Marked   
  7. 42     14     28   


从结果中可以看出,就是如下的表格

 

 

NoneSomeMarked
421428

 

 

创建二维列联表

 

[python]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. > b<-table(Arthritis$Sex,Arthritis$Improved)  
  2. class(b)  
  3. [1] "table"  
  4. > b  
  5.           
  6.          None Some Marked  
  7.   Female   25   12     22  
  8.   Male     17    2      6  


结果是如下表格

 

 

 NoneSomeMarked
Female251222
Male1726

 

 

 我们还可以将一维列联表a和二维列联表b转化成百分比的形式

 

[python]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. > prop.table(a)  
  2.   
  3.      None      Some    Marked   
  4. 0.5000000 0.1666667 0.3333333   
  5. > prop.table(b)  
  6.           
  7.                None       Some     Marked  
  8.   Female 0.29761905 0.14285714 0.26190476  
  9.   Male   0.20238095 0.02380952 0.07142857  


给table添加边际和

 

 

[python]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  1. > addmargins(a)####################################  
  2.   
  3.   None   Some Marked    Sum   
  4.     42     14     28     84   
  5. > addmargins(b)####################################  
  6.           
  7.          None Some Marked Sum  
  8.   Female   25   12     22  59  
  9.   Male     17    2      6  25  
  10.   Sum      42   14     28  84  
  11. > addmargins(prop.table(a))#########################  
  12.   
  13.      None      Some    Marked       Sum   
  14. 0.5000000 0.1666667 0.3333333 1.0000000   
  15. > addmargins(prop.table(b))#########################  
  16.           
  17.                None       Some     Marked        Sum  
  18.   Female 0.29761905 0.14285714 0.26190476 0.70238095  
  19.   Male   0.20238095 0.02380952 0.07142857 0.29761905  
  20.   Sum    0.50000000 0.16666667 0.33333333 1.00000000  


只添加某个部分边际和

 

 

[python]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
    1. > addmargins(prop.table(b),1)  
    2.           
    3.                None       Some     Marked  
    4.   Female 0.29761905 0.14285714 0.26190476  
    5.   Male   0.20238095 0.02380952 0.07142857  
    6.   Sum    0.50000000 0.16666667 0.33333333  
    7. > addmargins(prop.table(b),2)  
    8.           
    9.                None       Some     Marked        Sum  
    10.   Female 0.29761905 0.14285714 0.26190476 0.70238095  
    11.   Male   0.20238095 0.02380952 0.07142857 0.29761905  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值