📜  R 编程中的函数参数

📅  最后修改于: 2022-05-13 01:55:35.066000             🧑  作者: Mango

R 编程中的函数参数

参数是提供给函数以在编程语言中执行操作的参数。在 R 编程中,我们可以使用任意数量的参数,并用逗号分隔。 R函数中的参数数量没有限制。在本文中,我们将讨论在 R 编程中在函数中添加参数的不同方法。

在 R 中添加参数

我们可以在调用函数时将参数传递给函数,只需在括号内给出值作为参数即可。下面是具有单个参数的函数的实现。

例子:

# Function definition
# To check n is divisible by 5 or not
divisbleBy5 <- function(n){
  if(n %% 5 == 0)
  {
    return("number is divisible by 5")
  }
  else 
  {
    return("number is not divisible by 5")
  }
}
   
# Function call
divisbleBy5(100)
divisbleBy5(4)
divisbleBy5(20.0)

输出:

[1] "number is divisible by 5"
[1] "number is not divisible by 5"
[1] "number is divisible by 5"

在 R 中添加多个参数

R 编程中的函数也可以有多个参数。下面是具有多个参数的函数的实现。

例子:

# Function definition
# To check a is divisible by b or not
divisible <- function(a, b){
  if(a %% b == 0)
  {
    return(paste(a, "is divisible by", b))
  }
  else 
  {
    return(paste(a, "is not divisible by", b))
  }
}
  
# Function call
divisible(7, 3)
divisible(36, 6)
divisible(9, 2)


输出:

[1] "7 is not divisible by 3"
[1] "36 is divisible by 6"
[1] "9 is not divisible by 2"

在 R 中添加默认值

函数中的默认值是不需要在每次调用函数时指定的值。如果该值由用户传递,则函数使用用户定义的值,否则使用默认值。下面是具有默认值的函数的实现。

例子:

# Function definition to check 
# a is divisible by b or not. 
# If b is not provided in function call,
# Then divisibility of a is checked with 3 as default
divisible <- function(a, b = 3){
  if(a %% b == 0)
  {
    return(paste(a, "is divisible by", b))
  } 
  else
  {
    return(paste(a, "is not divisible by", b))
  }
}
  
# Function call
divisible(10, 5)
divisible(12)

输出:

[1] "10 is divisible by 5"
[1] "12 is divisible by 3"

点参数

点参数 (...) 也称为省略号,它允许函数采用未定义数量的参数。它允许函数接受任意数量的参数。下面是一个具有任意数量参数的函数示例。

例子:

# Function definition of dots operator
fun <- function(n, ...){
  l <- list(n, ...)
  paste(l, collapse = " ")
}
  
# Function call
fun(5, 1L,  6i, TRUE, "GeeksForGeeks", "Dots operator")

输出:

[1] "5 1 0+6i TRUE GeeksForGeeks Dots operator"

作为参数的函数

在 R 编程中,函数可以作为参数传递给另一个函数。下面是作为参数的函数的实现。

例子:

# Function definition
# Function is passed as argument
fun <- function(x, fun2){
  return(fun2(x))
}
  
# sum is built-in function
fun(c(1:10), sum)
  
# mean is built-in function
fun(rnorm(50), mean)

输出:

[1] 55
[1] 0.2153183