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>
posted @   aJream  阅读(248)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示