R函数

函数是一组一起执行一个任务的语句。R 语言本身提供了很多的内置函数,当然我们也可以自己创建函数。

您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由你自己来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。

函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。R 语言中函数是一个对象,可以拥有属性。

定义函数

R 语言中的函数定义使用 function 关键字,一般形式如下:

function_name<- function(arg_1, arg_2, ...) {
    // 函数体
}

说明:

· function_name : 为函数名

· arg_1, arg_2, ... : 形式参数列表

函数返回值使用 return()

下面给大家举个简单的例子,比如我们要写勾股定理的函数

#定义勾股定理的函数
#函数有两个参数x和y
#返回值为z
gougu<-function(x,y){
  z<-sqrt(x^2+y^2)
  return(z)
}

#调用函数gougu
gougu(x=3,y=4)
#5

#也可以
gougu(3,4)

#调用
gougu(6,8)
#10

下面帮大家理解一下默认参数的概念 比如上面我们定义的这个函数,如果你调用的时候不给x和y的值,或者只给其中一个参数的值,你会看到如下的错误

gougu()
#Error in gougu() : argument "x" is missing, with no default

gougu(3,)
#Error in gougu(3, ) : argument "y" is missing, with no default

那么下面我们重新定义一个函数,给x一个默认值

gougu1<-function(x=3,y){
  z<-sqrt(x^2+y^2)
  return(z)
}

#调用gougu1这个函数
gougu1(,4)
#5

gougu1(6,8)
#10

所谓默认参数,就是这个参数有一个默认的值,比如我们这个例子里面的x=3,如果你调用这个函数的时候没有给出参数值,那么这个参数就会使用默认值来调用这个函数,反之就会使用你给的值调用函数。

我们还能同时给x和y都设置默认值,方法是一样的

gougu2<-function(x=3,y=4){
  z<-sqrt(x^2+y^2)
  return(z)
}

#调用gougu2这个函数
#不会再报argument is missing的错误了
gougu2()
#5

gougu2(6,8)
#10

其实在R内置的很多函数也是有默认参数设置的,例如我们熟悉的read.csv,你会发现默认header是为TRUE的,也就是默认会把第一行单独拧出来作为表头。我们知道csv格式的文件是以逗号(,)为分隔符的,所以默认情况下sep为,

read.csv(file, header = TRUE, sep = ",", quote = "\"",
         dec = ".", fill = TRUE, comment.char = "", ...)

本文分享自微信公众号 - 生信交流平台(gh_d04ce007f7b8),作者:生信交流平台

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R函数,如何“抄”出水平

    前面给大家介绍了,自己不会写R函数如何去“抄”高手写好的函数,我们直接“拿来”用就可以了。有读者反映为什么不直接用gdcVolcanoPlot这个函数,...

    生信交流平台
  • R」R 的函数

    函数,其实就是一个黑箱子,一个封闭的计算结构体,对于用户来说,只需要关注输入和输出。函数在所有的编程语言中都有实现,主要的目的是方便进行模块化编程,代码维护等。

    王诗翔呀
  • R函数不会写,"抄"总会吧!

    前面我们简单的介绍了R函数。有些人可能会说,我现在的R水平有限,还不足以写出很高级的函数,该怎么办?俗话说前人栽树后人乘凉,他山之石可以攻玉,鲁迅同志也...

    生信交流平台
  • 【R语言温故而知新】R函数之字符串函数

    尽管R是一门以数值向量和矩阵为核心的统计语言,但字符串同样极为重要。从医疗研究数据里的出生日期到文本挖掘的应用,字符串数据在R程序中使用的频率非常高。R语言提供...

    统计学家
  • 【R语言经典实例8】如何定义一个R函数。

    使用关键字function,并在其后跟随函数参数列表和函数主体。其基本形式如下: function(param1, ...., paramN) expr

    统计学家
  • R替换函数gsub

    其中pattern是要替换的字符,replacement是替换成的字符,x是对应的string或string vector。

    生信交流平台
  • 4-1 R语言函数 lapply

    hankleo
  • 4-2 R语言函数 apply

    hankleo
  • 4-3 R语言函数 mapply

    hankleo
  • 4-4 R语言函数 tapply

    hankleo
  • 4-5 R语言函数 split

    hankleo
  • R中的expand.grid() 函数

    在R中,expand.grid()函数可以返回几个元素所有可能的组合,使我们免于多层遍历的苦恼。比如如下例子:

    生信编程日常
  • 「R」使用modules包来组织R的函数集合

    接触过Python的朋友肯定对模块很熟悉,R的代码组织方式以包为主。但基于文件的模块形式也是可以实现的,modules[1] 包提供了这种支持。

    王诗翔呀
  • 【学习经验】--关于R的函数学习

    太忙了,没空学习,晚上在群里看有比我还新的新人在问关于函数用法的问题,正好分享一下自己在学习中的一点小经验,其实是很简单的了:

    统计学家
  • 4-6 R语言函数 排序

    hankleo
  • R海拾遗-sprintf函数

    sprintf函数是用来返回包含输入值的格式化组合的字符对象,偶然间在table1函数源代码中发现这个函数 对于数字和字符串联合使用的处理比较优秀 ## 代码和...

    火星娃统计
  • R编程之路_函数参数

    西游东行
  • R语言 apply函数家族详解

    ? apply {base} 通过对数组或者矩阵的一个维度使用函数生成值得列表或者数组、向量。 apply(X, MARGIN, FUN, ...) X 阵列...

    CDA数据分析师
  • R的save,load函数和 .rda文件

    我们在使用R分析数据的时候,经常需要保存一些中间结果或者保存最终结果。这样的话下次就可以直接加载,而不必重新计算,这样既节省时间也节省计算资源。你保存的结果也可...

    生信交流平台

扫码关注云+社区

领取腾讯云代金券