R里面的函数定义方法
自定义函数
R语言中有两个重要的组成,一是变量,用于存储数据;二是函数,用于操作数据。
函数的组成离不开三个部分:函数名、程序主体以及参数集合。
例如,我编写了如下一个掷骰子的函数,函数名为roll
,包含两个参数x
, size
,且size
是默认参数。其中sample
函数能够从“x”中随机取样(大小为“size”),而“replace” 参数是定取样方式为可放回取样还是不可放回取样。最后,函数返回最后一行代码的结果,在该函数中,返回所有骰子的和。
1 | roll <- function(x, size = 1){ |
值得注意的是,自定义函数的默认参数的设定要在function()
括号内设置,而非在函数主体内部设置,可见如下例子:
1 | roll <- function(x, size){ |
这是由于roll()
函数定义的抽样大小参数size
没有传给执行抽样的函数sample()
,导致无论我们设定roll()
的size
为多少都不能改变返回样本的个数。
所以,如果函数中定义的某些参数是需要用户传入,切记这个参数在函数内部被使用了。
反之,如果我们希望函数的一些参数是不需要被用户更改的,例如该例中的是否执行有放回抽样replace=TRUE
,那么我们可以只在函数内部的执行函数中设置一个默认值。
完。