R語(yǔ)言 Switch語(yǔ)句

2021-07-26 09:14 更新

?switch ?語(yǔ)句允許根據(jù)值列表測(cè)試變量的相等性。 每個(gè)值都稱為case,并且針對(duì)每種情況檢查打開的變量。

語(yǔ)法

在 R 中創(chuàng)建 ?switch? 語(yǔ)句的基本語(yǔ)法是 -

switch(expression, case1, case2, case3....)

以下規(guī)則適用于 ?switch ?語(yǔ)句:

  • 如果 ?expression? 的值不是字符串,那么它被強(qiáng)制為整數(shù)。
  • 在交換機(jī)中可以有任意數(shù)量的 ?case ?語(yǔ)句。 每個(gè)案例后面都跟要比較的值和冒號(hào)。
  • 如果整數(shù)的值在 ?1 ?和 ?nargs() - 1?(參數(shù)的最大數(shù)目)之間,則對(duì) ?case ?條件的相應(yīng)元素求值并返回結(jié)果。
  • 如果表達(dá)式求值為字符串,那么該字符串與元素的名稱匹配。
  • 如果有多個(gè)匹配,則返回第一個(gè)匹配元素。
  • 無(wú)默認(rèn)參數(shù)可用。
  • 在沒有匹配的情況下,如果有一個(gè)未命名的元素...它的值被返回。 (如果有多個(gè)這樣的參數(shù),則返回錯(cuò)誤。)

流程圖


例1
x <- switch(
   3,
   "first",
   "second",
   "third",
   "fourth"
)
print(x)

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它產(chǎn)生以下結(jié)果 -

[1] "third"

例2

?runif()? 函數(shù)用于生成從 ?0 ?到 ?1 ?區(qū)間范圍內(nèi)的服從正態(tài)分布的隨機(jī)數(shù):

switch(1,2*3,sd(1:5),runif(3))  #返回(2*3,sd(1:5),runif(3))list中的第一個(gè)成分 
switch(2,2*3,sd(1:5),runif(3))  #返回第二個(gè)成分
switch(3,2*3,sd(1:5),runif(3))  #返回第三個(gè)成分

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它產(chǎn)生以下結(jié)果 - 

[1] 6
[1] 1.581139
[1] 0.31508117 0.04610938 0.19489747


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)