R函数

2020-09-29 19:08:26 浏览数 (1)

函数是一组一起执行一个任务的语句。R 语言本身提供了很多的内置函数,当然我们也可以自己创建函数。

您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由你自己来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。

函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。R 语言中函数是一个对象,可以拥有属性。

定义函数

R 语言中的函数定义使用 function 关键字,一般形式如下:

代码语言:javascript复制
function_name<- function(arg_1, arg_2, ...) {
    // 函数体
}

说明:

· function_name : 为函数名

· arg_1, arg_2, ... : 形式参数列表

函数返回值使用 return()

下面给大家举个简单的例子,比如我们要写勾股定理的函数

代码语言:javascript复制
#定义勾股定理的函数
#函数有两个参数x和y
#返回值为z
gougu<-function(x,y){
  z<-sqrt(x^2 y^2)
  return(z)
}

#调用函数gougu
gougu(x=3,y=4)
#5

#也可以
gougu(3,4)

#调用
gougu(6,8)
#10

下面帮大家理解一下默认参数的概念 比如上面我们定义的这个函数,如果你调用的时候不给x和y的值,或者只给其中一个参数的值,你会看到如下的错误

代码语言:javascript复制
gougu()
#Error in gougu() : argument "x" is missing, with no default

gougu(3,)
#Error in gougu(3, ) : argument "y" is missing, with no default

那么下面我们重新定义一个函数,给x一个默认值

代码语言:javascript复制
gougu1<-function(x=3,y){
  z<-sqrt(x^2 y^2)
  return(z)
}

#调用gougu1这个函数
gougu1(,4)
#5

gougu1(6,8)
#10

所谓默认参数,就是这个参数有一个默认的值,比如我们这个例子里面的x=3,如果你调用这个函数的时候没有给出参数值,那么这个参数就会使用默认值来调用这个函数,反之就会使用你给的值调用函数。

我们还能同时给x和y都设置默认值,方法是一样的

代码语言:javascript复制
gougu2<-function(x=3,y=4){
  z<-sqrt(x^2 y^2)
  return(z)
}

#调用gougu2这个函数
#不会再报argument is missing的错误了
gougu2()
#5

gougu2(6,8)
#10

其实在R内置的很多函数也是有默认参数设置的,例如我们熟悉的read.csv,你会发现默认header是为TRUE的,也就是默认会把第一行单独拧出来作为表头。我们知道csv格式的文件是以逗号(,)为分隔符的,所以默认情况下sep为,

代码语言:javascript复制
read.csv(file, header = TRUE, sep = ",", quote = """,
         dec = ".", fill = TRUE, comment.char = "", ...)

0 人点赞