购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 函数

我们可以把实现某一功能的代码定义为函数,在需要使用时,随时调用即可,十分方便。对于函数,简单地理解就是可以执行某项工作的代码块,类似积木块可以反复地使用。

在R语言中包括大量的内置函数可以在程序中直接调用。当然,也可以自己创建和使用函数,这种称为自定义函数。下面分别进行介绍。

3.3.1 内置函数

内置函数指的是R语言自带的函数,包括查看和改变路径的函数、数学函数、字符串函数等。例如,进行统计计算时常用的min()、max()、sum()、mean()等函数。内置函数可以在程序中直接调用,代码如下:

     min(23:98)       # 最小值
     max(23:98)       # 最大值
     sum(23:98)       # 求和
     mean(23:98)      # 平均值

运行程序,结果如图3.5所示。

图3.5 内置函数

3.3.2 自定义函数的创建和调用

1.创建一个函数

用户自己创建的函数称为自定义函数,可以理解为用户创建了一个具有某种用途的工具。在R语言中,自定义函数主要使用function实现,语法格式如下:

     function_name <- function(arg_1, arg_2, ...)
     {
     Function body
     }

参数说明如下。

function_name:函数名称。

arg_1, arg_2, ...:参数,是一个占位符。当函数被调用时,将传递一个值到参数。参数是可选的,也就是说,函数可能不包含参数。参数也可以有默认值。

Function body:函数体,定义函数功能的代码块。

【例3.2】 自定义计算BMI指数的函数 (实例位置:资源包\Code\03\02)

自定义计算BMI(体脂)指数的函数fun_bmi()。运行RGui,新建程序脚本,编写如下代码:

     fun_bmi <- function(height,weight)
     {
     weight/(height*height)
     }

代码解析

在上述代码中,fun_bmi是创建的函数名,height和weight是该函数的参数(形参),大括号中的内容为函数体,用于计算BMI指数。

说明

大括号也可以省略,因为函数体只有一行,省略后的代码如下:

     fun_bmi <- function(height,weight)
          weight/(height*height)
2.调用函数

调用函数也就是执行函数。如果把创建函数理解为创建一个具有某种用途的工具,那么调用函数就相当于使用该工具。

例如,调用例3.2创建的fun_bmi()函数,示例代码如下:

     fun_bmi(1.6,65)

运行程序,结果为:

     [1] 25.39062

上述代码也可以指定x和y参数,示例代码如下:

     fun_bmi(x=1.6,y=65)

在不特别指定x和y的情况下,R语言自动按位置进行匹配,即1.6为第一个参数,65为第二个参数。

如果自定义函数中没有参数,可以直接调用函数名。示例代码如下:

     myfun <- function()
     {
     print(4*5)
     }
     myfun()

3.3.3 返回值

前面创建的函数都只是为了完成特定任务,并不需要返回什么。但在实际开发中,通常需要返回一个执行结果。这就好比主管向下级职员下达命令,职员做完后,还需要反馈结果给主管。函数返回值的作用就是将函数的处理结果返回给调用它的程序。

在R语言中,可以在函数体中使用return()函数为自定义函数指定返回值。如果不使用return()函数,则默认将最后执行的语句的值作为返回值。如果自定义函数需要多个返回值,则可以打包在一个列表(list)中。另外,函数的返回值可以是任何R语言对象。

例如,定义一个计算BMI指数的fun_bmi()函数并要求返回BMI值,代码如下: RdbsJW9r5eVpCBr2tA07kLH7zrr0xBU7XiArLxXrQd1Oh0THspL+ANnirbnyTrlt

     fun_bmi <- function(height,weight)
     {
         bmi=weight/(height*height)
         return(bmi)
     }
     fun_bmi(1.5,70)
点击中间区域
呼出菜单
上一章
目录
下一章
×