首页 > 编程语言 > 详细

[R语言统计]频数表

时间:2017-03-01 17:54:41      阅读:354      评论:0      收藏:0      [点我收藏+]

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

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

 

[python] view plain copy
 
 技术分享技术分享
  1. install.packages(‘vcd‘) #安装vcd包,其中有可以利用的数据Arthritis  
  2. library(vcd)  
  3.   
  4. 载入需要的程辑包:grid  
  5. > head(Arthritis)#################################################  
  6. ID Treatment  Sex Age Improved  
  7. 1 57   Treated Male  27     Some  
  8. 2 46   Treated Male  29     None  
  9. 3 77   Treated Male  30     None  
  10. 4 17   Treated Male  32   Marked  
  11. 5 36   Treated Male  46   Marked  
  12. 6 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
 
 技术分享技术分享
  1. > a<-table(Arthritis$Improved)#创建一维列联表  
  2. > class(a)                    #查看变量a的类型  
  3. [1] "table"  
  4. > a  
  5.   
  6. None   Some Marked   
  7. 42     14     28   


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

 

 

None Some Marked
42 14 28

 

 

创建二维列联表

 

[python] view plain copy
 
 技术分享技术分享
  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  


结果是如下表格

 

 

  None Some Marked
Female 25 12 22
Male 17 2 6

 

 

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

 

[python] view plain copy
 
 技术分享技术分享
  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
 
 技术分享技术分享
  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
 
 技术分享技术分享
    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  

[R语言统计]频数表

原文:http://www.cnblogs.com/awishfullyway/p/6485214.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!