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