語言中的switch函數與其它語言中的switch語句是完全不同的,從這裡的叫法中大家也應該知道,R中的switch是一個函數,而其它語言中switch是一個開關語句。
在R語言中,switch函數的語法形式如下:
switch(expr, list)
其中,expr為表達式,其值或為一個整數值或為一個字符串;list為一個列表。
運行機理:若expr的計算結果為整數,且值在1~length(list)之間時,則switch()函數返回列表相應位置的值。若expr的值超出範圍,則沒有返回值(老版本的R中返回NULL)。
例1:一個簡單的應用
x
switch(x, "翔宇亭IT樂園", "頭條號", "R語言學習", "優美的代碼")
由該例可知,x的值為2,則switch函數根據傳入的值2,輸出列表中的第2個值:頭條號。
例2:看看下面兩個例子的輸出值是多少:
switch(3, 3+5, 3*5, 3-5, 3**5)
switch(2*2, mean(1:10), sum(1:10), max(1:10), min(1:10), sqrt(1:10))
若switch()中的參數list是有名定義時,則當expr等於元素名時,返回變量名對應的值,否則沒有返回值。
例3:
you.like
switch(you.like, drink="water", meat = "beef", fruit = "apple", vegetable = "cabbage")
我們使用switch函數的這一性質可以定義一個函數實現多種操作:
歡迎關注本號,本號將持續更新R語言方面的文章,內容由淺入深,由基本語法到具體的數據分析應用。希望你能喜歡。