R-函数
R语言函数
R语言具有大量内置函数,用户也可以创建自己的函数。
在R语言中,函数是一个对象,因此R语言解释器能够将控制传递给函数,以及函数完成动作所需的参数。
自定义函数
使用关键字 function
创建R语言的函数。 R语言的函数定义的基本语法如下
函数名 <- function(参数列表){
函数体
返回值 #可以没有
}
参数是可选的; 也就是说,一个函数可能不包含参数。 参数也可以有默认值。
例如:
fun.test <- function(a,b){
c <- a+b
print(c)
}
fun.test(1,2) #调用函数
#输出:
[1] 3
有返回值的函数:
fun.test <- function(a,b){
c <- a+b
return (c) #括号不能省去
}
c = fun.test(1,2)
print(c)
#输出:
[1] 3
调用函数
与python类似,调用函数的参数传入方式也有两种,我的理解就是:按顺序的
、不按顺序的
- 按顺序的,就是指按照参数的位置进行传入参数,例如上面的两个例子
- 不按顺序的,要指定参数名进行传递参数,例如:
fun.test <- function(a,b){
c <- a / b
return (c)
}
c = fun.test(b=10,a=20)
print(c)
#输出:
[1] 2
默认参数
r函数也可以设置默认参数,与其他语言类似,默认参数在定义时也要放在最后面,避免在调用时发生错误,例如
fun.test <- function(a,b= 5){
c <- a / b
return (c)
}
c = fun.test(20)
print(c)
#输出:
[1] 4
注意==:默认参数在设置时,以及函数在调用时传入参数,都只能用 =
,不能用 <-
R函数的功能延迟
R语言在定义时设置了多个参数,但在调用时不一定要把全部参数都给出,也可以只传入部分参数,多余的参数如果没用到就不会报错,只有用到且执行到对应语句才会报错(报错延迟),这与python有些不一样,例如:
fun.test <- function(a,b,d,e){
c <- a+b
print(c) #整个函数没有用到参数 d, e
}
c = fun.test(1,2)
print(c) #没有报错
#输出:
[1] 3
只有用到且执行到函数内部对应语句才会报错,例如:
fun.test <- function(a,b,d,e){
c <- a+b
print(c)
print(d+e) #只有执行到这条语句才会报错
}
fun.test(100,200)
#输出:
[1] 300
Error in print(d + e): 缺少参数"d",也没有缺省值
Traceback:
1. fun.test(100, 200)
2. print(d + e) # at line 4 of file <text>
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/15383567.html