在R语言的世界里,函数无处不在。举一个例子,我们在之前内容中使用过的“
1:5
”代表从1到5的正整数,而这个“:”符号实际上是一个函数。我们可以使用帮助文档进行查询:
?`:`
由于它是特殊符号,因此需要用上标(`)括起来进行查询。在R语言中,如果想查询某一个函数的文档,在前面加问号即可。例如
mean
函数可以求一个数值向量的均值,我们可以这样查询其帮助文档:
?mean
一般而言,当你反复用到某一个功能的时候,就应该考虑写一个函数对其进行实现,这样可以通过代码重用来节省时间,从而提高效率。我们来进行一个简单的演示,定义一个名为
add_one
的函数,它能够接收一个数值,然后返回它加1之后的数值:
add_one = function(x){
x + 1
}
add_one(3)
## [1] 4
我们可以看到,首先我们利用
function
函数来定义一个函数,括号内的
x
表示函数接收的参数,花括号内是函数的主体,它返回参数加1之后的数值。我们把整个部分赋值给
add_one
这个函数名称,在定义之后我们就可以进行调用了。如果我们把3作为参数传递进去,那么结果就会返回4。在所有的R函数中,我们会把函数的最后一个执行结果作为函数的返回值。此外,我们也可以使用
return
函数显式地返回一个值,方法如下:
add_one = function(x){
return(x + 1)
}
4.0.0版本以后的R语言支持函数的便捷写法,可以使用一个反斜杠(\)来代表函数(function)。也就是说,我们可以这样定义一个函数:
add_one = \(x){
return(x + 1)
}
尽管这种写法带来了一些便利,不过在实际应用中,使用
function
这种写法会更加规范。