ID EN
Control Flow

switch

R Base 3.6.2 🇮🇩 Bahasa Indonesia

switch mengevaluasi EXPR dan karenanya memilih salah satu argumen selanjutnya (dalam…).

Syntax

R
switch(EXPR, …)

Arguments

Parameter Deskripsi
EXPR an expression evaluating to a number or a character string.
… the list of alternatives. If it is intended that EXPR has a character-string value these will be named, perhaps except for one alternative to be used as a ‘default’ value.

Return Value

Nilai salah satu elemen…, atau NULL, tidak terlihat (setiap kali tidak ada elemen yang dipilih). Hasilnya adalah visibilitas (lihat tidak terlihat) dari elemen yang dievaluasi.

Details

switch bekerja dalam dua cara berbeda tergantung apakah argumen pertama dievaluasi menjadi string karakter atau angka. Jika nilai EXPR bukan string karakter maka akan dipaksa menjadi integer. Perhatikan bahwa ini juga terjadi karena faktor, dengan peringatan, karena biasanya yang dimaksud adalah level karakter. Jika bilangan bulat berada di antara 1 dan nargs()-1 maka elemen yang bersangkutan dari … dievaluasi dan hasilnya dikembalikan: jadi jika argumen pertama adalah 3 maka argumen keempat dievaluasi dan dikembalikan. Jika EXPR dievaluasi menjadi string karakter maka string tersebut cocok (tepat) dengan nama elemen di…. Jika ada kecocokan maka elemen tersebut akan dievaluasi kecuali elemen tersebut hilang, dalam hal ini elemen berikutnya yang tidak hilang akan dievaluasi, jadi misalnya switch("cc", a = 1, cc =, cd =, d = 2) bernilai 2

Contoh

Example
R
# NOT RUN {
require(stats)
centre <- function(x, type) {
  switch(type,
         mean = mean(x),
         median = median(x),
         trimmed = mean(x, trim = .1))
}
x <- rcauchy(10)
centre(x, "mean")
centre(x, "median")
centre(x, "trimmed")

ccc <- c("b","QQ","a","A","bb")
# note: cat() produces no output for NULL
for(ch in ccc)
    cat(ch,":", switch(EXPR = ch, a = 1, b = 2:3), "\n")
for(ch in ccc)
    cat(ch,":", switch(EXPR = ch, a =, A = 1, b = 2:3, "Otherwise: last"),"\n")

## switch(f, *) with a factor f
ff <- gl(3,1, labels=LETTERS[3:1])
ff[1] # C
## so one might expect " is C" here, but
switch(ff[1], A = "I am A", B="Bb..", C=" is C")# -> "I am A"
## so we give a warning

## Numeric EXPR does not allow a default value to be specified
## -- it is always NULL
for(i in c(-1:3, 9))  print(switch(i, 1, 2 , 3, 4))

## visibility
switch(1, invisible(pi), pi)
switch(2, invisible(pi), pi)
# }