前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言入门之编写自定义函数

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

作者头像
生信与临床
发布2020-08-06 09:58:55
1.1K0
发布2020-08-06 09:58:55
举报

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)

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信与临床 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • if-else判断语句
  • for循环语句
  • while循环语句
  • ifelse判断函数
  • 2. 编写自定义的函数
  • 实例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档