首页 > 编程 > R > 正文

R语言中使用自定义函数

2023-05-01 13:45:42
字体:
来源:转载
供稿:网友

R语言中提供了大量的内置函数为用户解决有关问题,同时,R语言中允许用户编写自己的函数来解决实际问题。

R语言中定义自己的函数语法格式:

functionname <- function( arglist ) expr
return (value)

上面的语法中,functionname为自己定义的函数名称;arglist是函数的参数列表,可以没有参数,也可以有1个到多个参数;expr是自己编写的相关语句;value是返回值,如没有返回值,可以不写return部分。

编写函数时可以使用R编辑器的程序脚本功能来编写:在R软件中选择菜单“文件”—>"新建程序脚本",打开“R编辑器”,编写自己的函数程序。编辑完后,选择菜单“文件”—>“保存”,输入函数的文件名即可。在使用时,需要将函数加载到R中:可以使用菜单“文件”—>“运行R脚本文件”,然后选择要运行的函数,或者执行代码“source(函数名所在文件名.R)”即可。

如在R软件下直接编写的函数,可以直接调用。

R语言中自定义函数的方法

下面举几个例子来说明一下具体用法:

(1)无参函数

welcom<-function()
{
print("Welcome to my site:www.VeVb.com")
}

将该函数保存到文件

该函数执行时,不需要给出参数,其作用是输出一行字符串:Welcome to my site:www.VeVb.com.

(2)带参数的函数

编写一个函数,求出向量中的最大值

maxvalue<-function(x)
{
if(length(x)==0)
stop("参数x不能为空值。");
maxv<-x[1]
for(i in 2:length(x))
if(x[i] > maxv)
maxv <- x[i]
return(maxv)
}

如使用本函数求下面向量X的值

X<-c(11,34,21,38,71,29)
maxvalue(X)

输出:71

(3)带默认参数的函数

有时一个函数中有多个参数时,部分参数可能在一些情况下用户不必提供或用户无法提供时,可以使用默认值。

编写一个函数,求出三个数的最大值

maxnum<-function(n1,n2=0,n3)
{
maxn <- n1
if(n2 > maxn)
maxn <- n2
if(n3 > maxn)
maxn <- n3
return(maxn)
}

这个自定义函数中,n2使用了默认值0,在调用时,下面几种格式都是合法的。

maxnum(1,2,3)
maxnum(1,n3=3) 

上面第二个调用中,参数n2没有给出值,则会使用其默认值,但n3必须使用参数名来调用,否则,会发生n3没有赋值的错误,因为R会按照给出的参数列表从左到右依次给每个参数赋值,如不用参数名,3会给了参数n2,造成没有默认值的参数n3没有赋值的错误。

最好的做法是,将带有默认值的参数放在所有参数的后面。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表