目录

一、正式编写程序

二、设计第一个函数

 三、函数也是一个对象

四、程序代码的简化

五、return()函数的功能

六、省略函数的大括号

 七、传递多个参数函数的应用

7.1 设计可传递2个参数的函数

7.2 函数参数的默认值

7.3 3点参数“…”的使用

 八、函数也可以作为参数

8.1 正式实例应用

8.2 以函数的程序代码作为参数传递

九、局部变量和全局变量

 十、通用函数

十一、设计第一个通用函数

11.1 优化转换百分比函数

11.2 设计通用函数的默认函数


一、正式编写程序

在前面的内容中,我们使用了R语言的直译器,在RStudio窗口左下方的Console窗口的代码区输入代码,立即可在此窗口获得执行结果。从现在起,我们将在RStudio窗口左上方的Source窗口编辑所有程序代码,然后存储,最后再编译和执行。

二、设计第一个函数

source函数 R语言 r语言source函数怎么用_r语言

单击在RStudio窗口左上角Source窗口的“Source”按钮,结果如下:

source函数 R语言 r语言source函数怎么用_r语言_02

 上述程序最大的不便之在于,如果我们有其他一系列数据要处理,则要修改程序第1行的数值向量。下面的函数格式可以改良此缺点:

函数名称<-function(参数1,参数2,...)
{
    程序代码
    程序代码
    ...
}

 

source函数 R语言 r语言source函数怎么用_r语言_03

 

source函数 R语言 r语言source函数怎么用_source函数 R语言_04

在上述执行结果中,执行source()函数后,所设计的函数ch11_2()已被加载,所以以后我们可以自由使用这个函数。

 三、函数也是一个对象

其实函数也是一个对象,例如,在Console窗口直接输入对象名称,可以看到此对象的内容。

source函数 R语言 r语言source函数怎么用_r语言_05

特别需要注意的是,不可加“()”,若加上“()”,则表示引用此函数,此时必须有参数在“()”,即括号内,否则会有错误产生。

我们也可以设定一个新的对象等于这个函数对象。

source函数 R语言 r语言source函数怎么用_r语言_06

R语言的这个功能虽然好用,但风险是,若是不小心使用一个与这个函数相同的变量名称,此时,这个函数就会被系统删除。所以为对象取名字时要小心,尽量避免出现相同的名字。

四、程序代码的简化

source函数 R语言 r语言source函数怎么用_数据分析_07

source函数 R语言 r语言source函数怎么用_开发语言_08

 

source函数 R语言 r语言source函数怎么用_r语言_09

source函数 R语言 r语言source函数怎么用_source函数 R语言_10

五、return()函数的功能

source函数 R语言 r语言source函数怎么用_开发语言_11

source函数 R语言 r语言source函数怎么用_开发语言_12

六、省略函数的大括号

如果函数体只有1行,那么也可以省略大括号。

 

source函数 R语言 r语言source函数怎么用_数据分析_13

source函数 R语言 r语言source函数怎么用_r语言_14

source函数 R语言 r语言source函数怎么用_source函数 R语言_15

 

source函数 R语言 r语言source函数怎么用_开发语言_16

 七、传递多个参数函数的应用

如果想要传递多个参数,那么只要将新的参数放在function()的括号内,各参数间彼此用逗号隔开即可。

7.1 设计可传递2个参数的函数

source函数 R语言 r语言source函数怎么用_大数据_17

source函数 R语言 r语言source函数怎么用_source函数 R语言_18

7.2 函数参数的默认值

source函数 R语言 r语言source函数怎么用_开发语言_19

 

source函数 R语言 r语言source函数怎么用_r语言_20

7.3 3点参数“…”的使用

实际上在设计函数时会碰上需传递更多参数的情况,如果参数一多,会使设计function()的参数列表变得很长,以后调用时的参数列表也会很长,碰上这种情况,R语言提供的3点参数“…”的概念,这种3点参数通常会放在参数列表的最后面。

source函数 R语言 r语言source函数怎么用_数据分析_21

 

source函数 R语言 r语言source函数怎么用_大数据_22

 八、函数也可以作为参数

8.1 正式实例应用

source函数 R语言 r语言source函数怎么用_source函数 R语言_23

source函数 R语言 r语言source函数怎么用_开发语言_24

 若省略第2个参数,则预设是执行round()函数。

如果调用函数时第2个参数为函数,则此参数函数将取代第3行的Xfun()。

8.2 以函数的程序代码作为参数传递

R语言既可支持将函数作为参数传递,也可支持将函数的程序代码当作参数传递,这类传递程序代码而不传递函数名的方式,被称为匿名函数。

source函数 R语言 r语言source函数怎么用_数据分析_25

source函数 R语言 r语言source函数怎么用_r语言_26

 

 上述代码中,以下函数的程序代码已被当作参数传递了。

function(x) round(x*100/sum(x))

九、局部变量和全局变量

对于一个函数而言,这个函数内部所使用的变量称为局部变量,程序整体所使用的变量会在Workspace窗口内看到,称为局部变量。对于函数所属的局部变量而言,函数调用结束变量就消失了。对于全局变量而言,只要Workspace窗口内保存,就随时可调用。

source函数 R语言 r语言source函数怎么用_大数据_27

 

source函数 R语言 r语言source函数怎么用_数据分析_28

 十、通用函数

何为通用函数?如果一个函数接收到参数后,什么事都不做,只是将工作分配给其他函数执行,这类函数被称为通用函数。

对于R语言,其实最常用的通用函数是print(),下列是print()函数的程序代码。

source函数 R语言 r语言source函数怎么用_r语言_29

source函数 R语言 r语言source函数怎么用_数据分析_30

许多通用函数在设计时,大都会同时设计一个默认函数,如果没有特定的函数可使用,则调用默认函数,比如print.default()。

source函数 R语言 r语言source函数怎么用_数据分析_31

十一、设计第一个通用函数

11.1 优化转换百分比函数

source函数 R语言 r语言source函数怎么用_source函数 R语言_32

source函数 R语言 r语言source函数怎么用_开发语言_33

 

11.2 设计通用函数的默认函数

source函数 R语言 r语言source函数怎么用_开发语言_34

source函数 R语言 r语言source函数怎么用_数据分析_35