2009-12-04 11:08:49| 分类: R&Bioconductor | 标签: |举报 |字号大中小 订阅
22 Jun
#本来说上周就把这章写上的,没想到工作突然忙起来了…… 呵呵,总算到昨天为止刚刚算是小小的告一段落,今天就抽时间写它一章~~
今天就来聊一聊R的函数
R中有很多的标准自带的函数,也有很多的由扩展包支持的函数。今天我们主要看一看R中标准自带的函数。
首先简单定义一下什么是函数:
在R中,所谓函数实际上就是一系列程序的组合。
为了能够更深刻的理解这句话,我将在下面这个例子中先一步一步的计算几个数的平均值;再讲如何把这些可以重复利用的运算步骤改写成为自己服务的函数;最后,我们再看一下R中已经为我们准备好了的求平均值的函数的用法:
1,一段程序
我们用R计算下面这5个数的和
23 34 56 78 89
在R中,我们刚开始可能会这样写:
>x <- c( 23, 34, 56, 78, 89 )
>z <- 0
>for( i in 1:5 ){
>z <- z + x[i]
>}
>z <- z/5
>z
[1]56
经过我们一步一步的计算,得到了最后的结果56。
但如果每次遇到类似这样的求平均的运算,我们都这样的用手去一步一步的输入的话,好像很麻烦,呵呵,还好,R可以帮助我们这些懒人,用函数的方式来解决这个问题。
2,一段程序变函数
我们所想要的是,只要输入数据就可以自动的帮我们算出平均值的结果。下面我们来看看怎样在R中写一个自己的函数。
> mymean <- function(x){
+ y <- 0
+ for(i in 1:length(x)){
+ y <- y+ x[i]
+ }
+ y <- y/length(x)
+ }
现在,属于我们自己的求平均函数mymean()就完成了,我们可以用下面这段程序来检查一下看有没有什么错误。
>x <- c( 23, 34, 56, 78, 89 )
>y <- mymean(x)
>y
[1]56
呵呵,结果一致。 我们以后就可以用这个自己制作的函数来计算其他的各种求平均运算了。
3,利用R自带的函数
其实像求平均、求和、最大值、最小值甚至自然指数、平方根等运算在R中都已经有自带的函数。比如R中自带的求平均函数:mean()
>x <- c( 23, 34, 56, 78, 89 )
>y <- mean(x)
>y
[1]56
使用方法和我们自己写的函数的使用方法是一样的。
好,我们到现在为止就大概的看了看函数的定义,如何制作自己的函数以及如何使用R中自带的函数。
接下来,我就把R中自带的函数列一个简表,以方便大家查询。(这里并不是全部,只是个人认为比较常用的,希望对初学者有所帮助。……也许以后会慢慢更新、补全,呵呵……)
基本统计量:
mean
求平均值
max
求最大值
min
求最小值
range
求范围(最大值-最小值)
median
求中央值
var
求分散
数据操作:
matrix
建立行列式
list
建立列表
is.*****
****是数据的类型名
例如:
is.matrix(x)语句的意思是问R:“x是不是行列式?”。
如果x是行列式的话R将返回”TRUE”,如果不是R将返回”FALSE”
as.****
****是数据的类型名
as.matrix(x)的作用是不管x以前是什么类型的,R都要用这条语句来把x转换成行列式。
nrow
返回对象的行数:nrow(x)
ncol
返回对象的列数:ncol(x)
length
返回对象的长度
colnames
返回列名
rownames
返回行名
简单计算:
评论