有时候你写出了下面这种很简单的判断语句但判断的条件比较多。
x <- "A"
if (x == "A") {
print(1)
} else if (x == "B") {
print(2)
} else if (x == "C") {
print(3)
}
这时候用 switch
函数就非常简洁。
> switch (x, "A" = 1, "B" = 2, "C" = 3)
[1] 1
除了用名字匹配,也可以输入位置。
> switch (2, "A" = 1, "B" = 2, "C" = 3)
[1] 2
多个匹配时返回第一个的值,实际写代码应尽量避免这种情况。
> switch ("A", "A" = 1, "B" = 2, "C" = 3, "A" = 4)
[1] 1
> switch ("A", "A" = 15, "B" = 2, "C" = 3, "A" = 4)
[1] 15
可以设定一个未命名的值,无匹配时返回这个值,可以用于返回默认值。
> switch ("K", "A" = 15, "B" = 2, "C" = 3, 4)
[1] 4
> switch ("M", "A" = 15, "B" = 2, "C" = 3, 4)
[1] 4
> switch ("C", "A" = 15, "B" = 2, "C" = 3, 4)
[1] 3
网友评论