R语言-编写自定义函数

  • Post author:
  • Post category:其他



一、函数构造器


每一个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查看函数解释,还可以通过直接输入函数名查看函数代码

这就是开源的好处哦~



版权声明:本文为xiaohukun原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。