使用关键字function定义函数(和python一样,形式参数可以指定缺省值):
函数名 <- function(形式参数) {
函数体
}
如果函数体很简单,就可以用省略花括号的一行来定义函数:
f <- function(x) x^2
【Return value】函数体中最后一个表达式的结果or显式地使用return(x)返回结果;和python一样,遇到return(x)后停止一切。
用来查看函数信息的三个常用函数:
body:函数体formals:函数的形式参数environment:函数定义时所处的环境>>> f <- function(x) x^2
>>> body(f)
x^2
>>> formals(f)
$x
>>> environment(f)
<environment: R_GlobalEnv>
和python几乎完全一样。一些特殊的点:
do.call进行函数调用:do.call(f, list(3, y=1))等价于f(3, y=1)。sin(sqrt(x))等价于x |> sqrt() |> sin()。没有函数名的函数:
>>> (function(x) x^2)(3)
[1] 9
无名函数常常用于作为一些函数的参数输入。