一、函数构造器

每一个R函数都包括三个部分:函数名,程序主体以及参数集合,在编写自定义R函数时,需要将三个部分各自储存在一个R对象中。这里需要使用function函数,形如:

my_function<-function(){}

function函数可以将大括号内的代码内容构建成一个函数,例如:

roll<-function(){
dice<-sample(1:6,2,replace = T)#可重复抽样
sum(dice)
}
roll()

函数将返回最后一行的运行输出结果,如果最后一行不输出结果,整个函数也将不会有返回值

二、含参函数的构造

可以通过在括号里填入参数名称加以实现,具体如下:

roll2<-function(bones){
dice<-sample(bones,2,replace = T)#可重复抽样
sum(dice)
}
> roll2()
Error in sample(bones, 2, replace = T) :
argument "bones" is missing, with no default
> roll2(1:10)
[1] 11

可以发现如果不写参数,R将报错,为了防止类似的错误发生,可以预先设置一个初始默认值给bones参数,只需在括号里用等号将默认值与参数相连即可。

形如:

roll3<-function(bones=1:6){
dice<-sample(bones,2,replace = T) #可重复抽样
sum(dice)
}
> roll3()
[1] 9

三、提取函数

就像其他语言的IDE一样,RStudio也提供了抽取函数的功能,在R脚本中选中对应的代码段,在菜单栏中选择Code>Extract Function即可。RStudio会询问给函数取什么名字,然后用function将所需函数包装起来,并会自动检查代码段中未定义的变量,将其设置为该函数的参数。

提取函数之后,同志们记得检查一下,主要是看看有没有什么需要设置默认值的参数,或者函数有没有返回值之类的问题。

四、查看函数

不仅可以通过help查看函数解释,还可以通过直接输入函数名查看函数代码

这就是开源的好处!

R语言-编写自定义函数 ZZ的更多相关文章

  1. R语言(自定义函数、循环语句、管道函数)

    学习R语言半年多了,以前比较注重统计方法上的学习,但是最近感觉一些基础知识也很重要.去年的参考资料是<R语言实战>,今年主要是看视频.推荐网易云课堂里的教程,很多资料都是很良心的~ 目前学 ...

  2. Atiitt 使用java语言编写sql函数或存储过程

    Atiitt 使用java语言编写sql函数或存储过程 1.1. java编写sql函数或存储过程的机制1 1.2. Java编写sp的优点1 1.3. 支持java源码,class文件,blog f ...

  3. Hadoop生态圈-hive编写自定义函数

    Hadoop生态圈-hive编写自定义函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  4. R语言 三个函数sort();rank();order()

    R语言入门,弄懂了几个简单的函数,分享一下:R语言排序有几个基本函数: sort():rank():order()sort()是对向量进行从小到大的排序rank()返回的是对向量中每个数值对应的秩or ...

  5. R语言——基本绘图函数

    通过一个综合的例子测试绘图函数 学习的内容是tigerfish老师的教程. 第一节:基本知识 用seq函数产生100位学生的学号. > num = seq(,) > num [] [] [ ...

  6. R语言do.call 函数用法详解

    虽然R语言有类型很丰富的数据结构,但是很多时候数据结构比较复杂,那么基本就会用到list这种结构的数据类型.但是list对象很难以文本的形式导出,因此需要一个函数能快速将复杂的list结构扁平化成da ...

  7. [R]关于R语言的绘图函数

    1. 首先就是plot(x,y,...) 参数: x: 所绘图形横坐标构成的对象 y: 所绘图形纵坐标构成的对象 type: 指定所绘图形类型 pch: 指定绘制点时使用的符号 cex: 指定符号的大 ...

  8. R语言矩阵matrix函数

    矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...

  9. R语言列表list函数

    列表是R语言中的对象,它包含不同类型的元素,比如 - 数字,字符串,向量和另一个列表等.一个列表还可以包含一个矩阵或一个函数作为它的元素.使用list()函数创建列表. 创建一个列表 下面是一个例子来 ...

随机推荐

  1. 学习excel的使用技巧三快捷键和思路

    快捷键 CRTL+回车 是多行执行 思路 关于公式 在空白出 写= 即开始写公式 excel第一行 就是行标 比如 A1 就是excel 表格中第一个 比如来个乘法 =A1*12+b1*13 求和更简 ...

  2. 获取mysql 配置和目录

    http://bbs.csdn.net/topics/390620630 mysql> show variables like '%dir%';+------------------------ ...

  3. 转载:指针delete后要设置为NULL

    本文来自:http://rpy000.blog.163.com/blog/static/196109536201292615547939/ 众所周知,最开始我们用new来创建一个指针,那么等我们用完它 ...

  4. javascript权威指南第1章Js概述js语言核心

    <html> <head> <script> function Point(x,y){ this.x=x; this.y=y; } ,); console.log( ...

  5. Fragment的粗浅理解

    Fragment: 1.它是对于Activity界面实现的一种途径,相对于已经绑定的Layout,他更轻便,更灵活,更具有自由度和可设计性. 2.Fragment的功能正如他的正文意思所言,他是一个片 ...

  6. java DES加解密及Wrong key size错误

    如下的DES加密方法会报错:Wrong key size public static String encryptDES(String source) throws Exception{ Secret ...

  7. Setting up Scatter for Web Applications

    [Setting up Scatter for Web Applications] If you are still using scatter-js please move over to scat ...

  8. cdnbest的proxy里api用法案例:

    用户的proxy帐号里api key要设置好,那个key设置后是不显示的,但会显示已设置 key是自已随便生成的 $uid = 22222; $skey = 'langansafe&*#'; ...

  9. python中tolist()命令

  10. 高级编程T-SQL函数

    --字符串函数--1.LEN:返回一个字符串的字符数select LEN('中国'),LEN('abc123!')select LEN('abc '+'1'),LEN(' abc')--2.DataL ...