1. 程式人生 > >R語言入門-函式

R語言入門-函式

函式

函式是一組組合在一起以執行特定任務的語句。 R語言具有大量內建函式,使用者可以建立自己的函式。

在R語言中,函式是一個物件,因此R語言直譯器能夠將控制傳遞給函式,以及函式完成動作所需的引數。

該函式依次執行其任務並將控制返回到直譯器以及可以儲存在其他物件中的任何結果。

1、函式定義

使用關鍵字函式建立R語言的函式。 R語言的函式定義的基本語法如下

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

2、函式元件

函式的不同部分 -

  • 函式名稱 -這是函式的實際名稱。 它作為具有此名稱的物件儲存在R環境中。

  • 引數 -引數是一個佔位符。 當函式被呼叫時,你傳遞一個值到引數。 引數是可選的; 也就是說,一個函式可能不包含引數。 引數也可以有預設值。

  • 函式體 -函式體包含定義函式的功能的語句集合。

  • 返回值 -函式的返回值是要評估的函式體中的最後一個表示式。

R語言有許多內建函式,可以在程式中直接呼叫而無需先定義它們。我們還可以建立和使用我們自己的函式,稱為使用者定義的函式。

3、內建功能

內建函式的簡單示例是seq()mean()max()sum(x)paste(...)等。它們由使用者編寫的程式直接呼叫。 您可以參考最廣泛使用的R函式。

# Create a sequence of numbers from 32 to 44.
print(seq(32,44))

# Find mean of numbers from 25 to 82.
print(mean(25:82))

# Find sum of numbers frm 41 to 68.
print(sum(41:68))

當我們執行上面的程式碼,它產生以下結果 -

[1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526

4、使用者定義的函式

我們可以在R語言中建立使用者定義的函式。它們特定於使用者想要的,一旦建立,它們就可以像內建函式一樣使用。 下面是一個建立和使用函式的例子。

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}	

5、呼叫函式

# Create a function to print squares of numbers in sequence.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

# Call the function new.function supplying 6 as an argument.
new.function(6)

當我們執行上面的程式碼,它產生以下結果 -

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36

5.1 呼叫沒有引數的函式

# Create a function without an argument.
new.function <- function() {
   for(i in 1:5) {
      print(i^2)
   }
}	

# Call the function without supplying an argument.
new.function()

當我們執行上面的程式碼,它產生以下結果 -

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25

5.2 使用引數值呼叫函式(按位置和名稱)

函式呼叫的引數可以按照函式中定義的順序提供,也可以以不同的順序提供,但分配給引數的名稱。

# Create a function with arguments.
new.function <- function(a,b,c) {
   result <- a * b + c
   print(result)
}

# Call the function by position of arguments.
new.function(5,3,11)

# Call the function by names of the arguments.
new.function(a = 11, b = 5, c = 3)

當我們執行上面的程式碼,它產生以下結果 -

[1] 26
[1] 58

5.3 使用預設引數呼叫函式

我們可以在函式定義中定義引數的值,並呼叫函式而不提供任何引數以獲取預設結果。 但是我們也可以通過提供引數的新值來獲得非預設結果來呼叫這樣的函式。

# Create a function with arguments.
new.function <- function(a = 3, b = 6) {
   result <- a * b
   print(result)
}

# Call the function without giving any argument.
new.function()

# Call the function with giving new values of the argument.
new.function(9,5)

當我們執行上面的程式碼,它產生以下結果 -

[1] 18
[1] 45