R语言入门之编写自定义函数

2020-08-06 09:58:55 浏览数 (1)

1. 控制结构

R语言有自己标准的控制结构,通常我们在()里写的是条件,而在{}里写的是表达式。

if-else判断语句

代码语言:javascript复制
if (cond) expr
if (cond)expr1else expr2

for循环语句

代码语言:javascript复制
for (var in seq) expr

while循环语句

代码语言:javascript复制
while (cond) expr

ifelse判断函数

代码语言:javascript复制
ifelse(test,yes,no)

2. 编写自定义的函数

R语言的一大优势就是用户可以编写自己的函数,而且这种函数可以是基于其它函数之上的,这为分析提供了更大的灵活性和更广的空间。有了上面关于控制结构的基础知识,我们现在就可以编写自己的函数了。下面是R语言函数的语法结构:

代码语言:javascript复制
myfunction <- function(arg1, arg2, ... ){
statements
return(object)
}

arg1和arg1等是输入的参数,object是该函数返回的结果

实例

代码语言:javascript复制
# 自己编写一个转置矩阵的函数
# 该函数功能和R中的函数t()一致
mytrans <- function(x) { 
##判断输入数据x是否是一个矩阵
##是矩阵就继续运行,否则就报警
  if (!is.matrix(x)) {
    warning("argument is not a matrix: returningNA")
    return(NA_real_)
  }
##新建一个空矩阵y用于储存后续的计算结果
## 将行和列互换就可求出转置矩阵
## 这里使用for循环对每个数进行遍历
## 小括号()和花括号{}一定是成对出现的
  y <- matrix(1, nrow=ncol(x), ncol=nrow(x)) 
  for (i in 1:nrow(x)) {
    for (j in 1:ncol(x)) {
      y[j,i] <- x[i,j] 
    }
  }
return(y)
}

# 检验结果
z <- matrix(1:10, nrow=5, ncol=2)
mytrans(z)

关于如何编写自定义函数的内容就简单介绍到这里,这一部分的内容对于做好生物信息研究非常重要,希望大家能勤加练习!

0 人点赞