注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云之南

风声,雨声,读书声,声声入耳;家事,国事,天下事,事事关心

 
 
 

日志

 
 
关于我

专业背景:计算机科学 研究方向与兴趣: JavaEE-Web软件开发, 生物信息学, 数据挖掘与机器学习, 智能信息系统 目前工作: 基因组, 转录组, NGS高通量数据分析, 生物数据挖掘, 植物系统发育和比较进化基因组学

网易考拉推荐

5_用R进行基本的统计计算  

2009-12-04 11:09:37|  分类: R&Bioconductor |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

※过了一个黄金周,呵呵,都不知道该怎么上班了~~

今天简单的讲一下如何用R进行基本的统计计算。

定义:
数据有很多种分类方法,在这里,为了方便理解,暂时把年龄、身高、体重等用数字表示的数据叫做数量型数据;相对的,把血型、性别、职称等用文字叙述的数据叫做质量型数据。

在这里所说的基本的统计计算,是指对各类数量型数据进行求和、平均、求最大值最小值等等的计算。

●和与百分比

A:和

在对数量型数据进行分析计算时,求和是经常会使用到的。

比如说,有五位同学,他们的身高分别是:
1.75米 、 1.82米 、 1.78米 、 1.93米 、 1.77米
求他们的身高的总和。

和 = 1.75+1.82+1.78+1.93+1.77 = 9.05米

用R进行求和计算时,你可以按照下面的方式进行计算
> 1.75+1.82+1.78+1.93+1.77
[1] 9.05
也可以利用R本身的sum()函数,这样的话,会更加便捷。
> shengao <- c(1.75,1.82,1.78,1.93,1.77)
> sum(shengao)
[1] 9.05

B:百分比

还是刚才那5位同学,他们的体重分别是:
69公斤 , 80公斤 , 78公斤 , 96公斤 , 65公斤
他们的总体重为:
> tizhong <- c(69,80,78,96,65)
> sum(tizhong)
[1] 388
388公斤。

那么,第一位同学占总体重的多少呢?

按比例计算:
> tizhong/sum(tizhong)
[1] 0.1778351 0.2061856 0.2010309 0.2474227 0.1675258

按百分比计算:
> 100*(tizhong/sum(tizhong))
[1] 17.78351 20.61856 20.10309 24.74227 16.75258

使用扩展包sca中的percent函数,可以用带%符号的表示方式显示结果。
> library(sca)
> percent(tizhong/sum(tizhong))
[1] “18 %” “21 %” “20 %” “25 %” “17 %”

还可以用参数d来指定小数点后的表示位数。在不指定的情况下,小数点后的数字不表示。
> percent(tizhong/sum(tizhong),d=1)
[1] “17.8 %” “20.6 %” “20.1 %” “24.7 %” “16.8 %”

如果不想结果被双引号包围,可以用noquote命令
> noquote(percent(tizhong/sum(tizhong),d=1))
[1] 17.8 % 20.6 % 20.1 % 24.7 % 16.8 %

●表示中心的统计量
表示数据中心位置的统计量有很多种,最基本的有:平均值、最频值。

A:平均值

上面那五位同学的年龄分别为:
19岁 、 21岁 、 20岁 、 26岁 、 17岁
在求这五位同学的年龄的平均值时,可以用下面这种方法:
> (19+21+20+26+17)/5
[1] 20.6

也可以用R自带的mean()函数:
> nianling <- c(19,21,20,26,17)
> mean(nianling)
[1] 20.6

B:最频值

在数据中最频繁出现的数值叫做最频值。

我们先用其他的函数来间接的求最频值。
例如:我们在求下面这组数据的最频值时,可以使用table函数。
1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4
> table(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))
 1  3  4  5  7  8  9 23
 1  2  1  1  3  1  1  1
从返回的结果中我们可以清楚地看到,在数据中 “7” 出现了3次,因此 “7” 为该组数据的最频值。

接着,我们直接用函数median()来求最频值。
> median(c(1 , 7 , 3 , 7 , 8 , 23 , 5 , 7 , 9 , 3 , 4))
[1] 7

●表示分散的统计量
表示数据中心的统计量虽然很重要,但是表示数据四周的分散信息的统计量也十分的重要。

A:最大值、最小值和范围

我们用tizhong数据,分别计算五位同学体重的最大值、最小值和体重的分布范围。

最大值
> max(tizhong)
[1] 96
最小值
> min(tizhong)
[1] 65
范围
> range(tizhong)
[1] 65 96

B:方差和标准偏差(variance AND standard deviation)

在R中,有很方便的求方差和标准偏差的函数var()和sd()。

例如在求tizhong数据的方差和标准偏差时,可以如下计算。
方差:
> var(tizhong)
[1] 144.3
标准偏差:
> sd(tizhong)
[1] 12.01249

C:四分位数

四分位数是指把样本数据按从小到大的顺序等分成四份,各等分点上的数即为四分位数。
例如:数据
3(0%点)  5  6(25%点)  8  9(50%点)  11  12(75%点)  15  16(100%点)

25%点的6和75点的12分别称为下四分位数和上四分位数。

上四分位数与下四分数之差叫做四分位间距。

在R中我们可以用quantile()函数和IQR()函数来求四分位数和四分位间距。
> sifenshu <- c(3,5,6,8,9,11,12,15,16)
> quantile(sifenshu)
  0%  25%  50%  75% 100%
   3    6    9   12   16
> IQR(sifenshu)
[1] 6

今天简单介绍了一下如何用R对一些基本的统计量进行计算,如果有其它的要求的,欢迎提出来,我会进一步介绍的。今天就先到这里了,呵呵。

  评论这张
 
阅读(1829)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016