溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言的函數(shù)怎么自定義

發(fā)布時間:2022-01-20 10:52:25 來源:億速云 閱讀:280 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“R語言的函數(shù)怎么自定義”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

函數(shù)是一組組合在一起以執(zhí)行特定任務(wù)的語句。R 語言具有大量內(nèi)置函數(shù),用戶可以創(chuàng)建自己的函數(shù)。在R語言中,函數(shù)是一個對象,因此R語言解釋器能夠?qū)⒖刂苽鬟f給函數(shù),以及函數(shù)完成動作所需的參數(shù)。該函數(shù)依次執(zhí)行其任務(wù)并將控制返回到解釋器以及可以存儲在其他對象中的任何結(jié)果。

函數(shù)定義

使用關(guān)鍵字函數(shù)創(chuàng)建 R 語言的函數(shù)。R 語言的函數(shù)定義的基本語法如下:

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

函數(shù)組件

函數(shù)的不同部分 :

  • 函數(shù)名稱 -這是函數(shù)的實際名稱。它作為具有此名稱的對象存儲在 R 環(huán)境中。

  • 參數(shù) -參數(shù)是一個占位符。當函數(shù)被調(diào)用時,你傳遞一個值到參數(shù)。參數(shù)是可選的; 也就是說,一個函數(shù)可能不包含參數(shù)。參數(shù)也可以有默認值。

  • 函數(shù)體 -函數(shù)體包含定義函數(shù)的功能的語句集合。

  • 返回值 -函數(shù)的返回值是要評估的函數(shù)體中的最后一個表達式。

R語言有許多內(nèi)置函數(shù),可以在程序中直接調(diào)用而無需先定義它們。我們還可以創(chuàng)建和使用我們自己的函數(shù),稱為用戶定義的函數(shù)。

內(nèi)置函數(shù)

內(nèi)置函數(shù)的簡單示例是 seq(),mean(),max(),sum(x) 和 paste(...) 等。它們由用戶編寫的程序直接調(diào)用。您可以參考最廣泛使用的 R 函數(shù)。

# 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 from 41 to 68.
print(sum(41:68))

當我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 :

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

自定義的函數(shù)

我們可以在 R 語言中創(chuàng)建用戶定義的函數(shù)。它們特定于用戶想要的,一旦創(chuàng)建,它們就可以像內(nèi)置函數(shù)一樣使用。下面是一個創(chuàng)建和使用函數(shù)的例子。

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

調(diào)用函數(shù)

# 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)

當我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 :

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

調(diào)用沒有參數(shù)的函數(shù)

# 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()

當我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 :

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

使用參數(shù)值調(diào)用函數(shù)(按位置和名稱)

函數(shù)調(diào)用的參數(shù)可以按照函數(shù)中定義的順序提供,也可以以不同的順序提供,但分配給參數(shù)的名稱。

# 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)

當我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 :

[1] 26
[1] 58

使用默認參數(shù)調(diào)用函數(shù)

我們可以在函數(shù)定義中定義參數(shù)的值,并調(diào)用函數(shù)而不提供任何參數(shù)以獲取默認結(jié)果。但是我們也可以通過提供參數(shù)的新值來獲得非默認結(jié)果來調(diào)用這樣的函數(shù)。

# 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)

當我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 :

[1] 18
[1] 45

“R語言的函數(shù)怎么自定義”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI