1. 程式人生 > >R語言-編寫自定義函式

R語言-編寫自定義函式

一、函式構造器
每一個R函式都包括三個部分:函式名,程式主體以及引數集合,在編寫自定義R函式時,需要將三個部分各自儲存在一個R物件中。這裡需要使用function函式,形如:
my_function<-function(){}
function函式可以將大括號內的程式碼內容構建成一個函式,例如:

roll<-function(){
  dice<-sample(1:6,2,replace = T)#可重複抽樣
  sum(dice)
}
roll()

函式將返回最後一行的執行輸出結果,如果最後一行不輸出結果,整個函式也將不會有返回值

二、含參函式的構造
可以通過在括號裡填入引數名稱加以實現,具體如下:

roll2<-function(bones){
  dice<-sample(bones,2,replace = T)#可重複抽樣
  sum(dice)
}
> roll2()
Error in sample(bones, 2, replace = T) : 
  argument "bones" is missing, with no default
> roll2(1:10)
[1] 11

可以發現如果不寫引數,R將報錯,為了防止類似的錯誤發生,可以預先設定一個初始預設值給bones引數,只需在括號裡用等號將預設值與引數相連即可。,形如:

roll3<-function(bones=1
:6)
{ dice<-sample(bones,2,replace = T)#可重複抽樣 sum(dice) } > roll3() [1] 9

三、提取函式
就像其他語言的IDE一樣,RStudio也提供了抽取函式的功能,在R指令碼中選中對應的程式碼段,在選單欄中選擇Code>Extract Function即可。RStudio會詢問給函式取什麼名字,然後用function將所需函式包裝起來,並會自動檢查程式碼段中未定義的變數,將其設定為該函式的引數。
提取函式之後,同志們記得檢查一下,主要是看看有沒有什麼需要設定預設值的引數,或者函式有沒有返回值之類的問題。

四、檢視函式
不僅可以通過help檢視函式解釋,還可以通過直接輸入函式名檢視函式程式碼
這就是開源的好處哦~

相關推薦

R語言-編寫定義函式

一、函式構造器 每一個R函式都包括三個部分:函式名,程式主體以及引數集合,在編寫自定義R函式時,需要將三個部分各自儲存在一個R物件中。這裡需要使用function函式,形如: my_function<-function(){} function函式可

R語言定義函式

R語言系列:自定義function 在用R語言做各種事物時,使用者自定義函式是不可或缺的。這期來講講如何自定義R的function。首先要介紹的是function的基本框架: myfunction <- function(arg1, arg2, .

hive報錯編寫定義函式匯入依賴報錯 Missing artifact jdk.tools:jdk.tools:jar:1.6

少了一個jar包 <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.

C語言_定義函式使用用例

1 . 實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定 輸入9,輸出9*9口訣表,輸出12,輸出12*12的乘法口訣表。 #include<stdio.h> int m

sqlserver中編寫定義函式中的返回值問題

寫了一個獲取符號間隔字串的函式,原先程式碼如下 CREATE FUNCTION funGetSubStr (  -- Add the parameters for the function here  @StrParams nvarchar(4000),  @char ch

R語言——定義函式求置信區間

#求單正態均值mu的置信區間 #引數依次為置信水平alpha,正態樣本x,已知總體方差(預設為未知) mu <- function(alpha,x,sigma=NA){ n <- length(x) meanx <- mean(x) if(is

R語言學習筆記(四)流程函式定義函式

if(FALSE){條件執行} if(FALSE){if-else結構,多重判斷} if(FALSE){對score進行等級判定} score = 65 if(score >= 90){ pr

R語言定義函式及基本分支迴圈結構

使用者自定義函式: 使用者自定義函式名<- function(引數列表){ 計算步驟n Return(函式值) } 分支結構: If(關係表示式){語句} If(關係表示式){語句}else{語句} Ifelse(關係表示式,語句1,語句2) switch(R物件,值

【C語言】字串處理定義函式

1、字串求長度 #include <stdio.h> int Mystrlen1(const char *str) { int i=0; while(*(str++)!='\0') { i++; } return i; } int Mystrlen2(cons

c語言定義函式,10月28日總結

現在時間23點34分,我想看看我幾點能完成   今天總結自定義函式的使用,先從最基礎的地方開始 1.形參實參 在定義函式的時候,函式大多數都有引數,在被主調函式需要傳遞資料給函式的引數 函式定義時用的變數叫形參 傳遞給函式的中形參值或變數叫實參 int m

按鍵精靈Q語言-怎麼使用定義函式返回值

按鍵精靈怎麼使用自定義函式返回值? a i MessageBox i Function a(i) i=100 End Function 就是想彈出100 aiMessageBoxiFunctiona(i)i=100EndFunction就是想讓它彈出的是100怎麼獲得自定義函式中的值呢?...展

初階C-1103,C語言定義函式練習

title: 初階C-1103 date: 2018-11-05 23:24:13 tags: C初階 1.實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定,輸入9,輸出99口訣表,輸入12,輸出1212的乘法口訣表。 #include<stdio.h> #inc

在c語言定義了一個函式,在main中呼叫時提示找不到識別符號

解決方案一: 把定義的函式放在,main函式之前。 void f() { printf("Hello"); } main() { f(); } 解決方案二: 在main函式之前宣告。 void f(); main() { f

C語言--定義函式

【@C語言】關於自定義函式 return_type function_name([datetype|arg|],[datetype arg2],[…]) { //函式體 } 函式三要素: 函式返回值 函式名 引數列表 例子呀: //自定義函式的完整寫法 # include <s

模板語言 定義函式simple_tag

模板語言自帶的一些處理函式:通過管道符來處理 幫助方法:{{ item.event_start|date:"Y-m-d H:i:s"}}  轉換成日期時間型{{ bio|truncatewords:"30" }} 只取前30個字元{{ my_list|first|upper }}&nbs

Hive定義函式(UDF)的編寫及使用

前提條件: 1. 安裝好hadoop2.7.3(LInux環境下) 2. 安裝好Hive2.3.3,參考:Hive的安裝配置 3. 安裝好Maven(Windows環境下)參考:Maven安裝 4. 安裝好eclipse(Windows環境下)   Hive自定義函

C語言_在定義函式裡使用結構體_Cplus14.6

#include<stdio.h> #define FUNDLEN 50 struct fund {char bank[FUNDLEN];double bankfund;char save[FUNDLEN];double savefund; }; double

C語言學習-呼叫定義函式

如何呼叫自定義函式 編寫一個程式,生成以下輸出: Brazil, Russia, India, China India, China, Brazil, Russia 除了main以外,該程式還要呼叫兩個自定義函式,一個名為br(),呼叫一次列印一次“Brazil, Russ

【C語言簡單說】七:定義函式(2)

剛剛說了如何自定義函式。那只是最簡單的形式,那我們現在開始來說函式的返回值。我們先貼上之前的程式碼: #include<stdio.h> #include<stdlib.h>

DB2定義函式(C語言

1      總體介紹 基於DB2 V9.5 1.1    使用者自定義函式(UDF) DB2 內部提供了大量的函式,但仍然不足以滿足業務千奇百怪的需要。不過DB2提供了使用者自定義函式(User Defined Function,簡稱 UDF)功能。DB29.5版本的自定