一起来学 R编程吧(2)---判断语句switch函数的用法

R语言由一个个基础函数组成,熟练灵活应用这些基础函数,有助于我们更好的学习R包及编程,这个专栏可能很多人不感兴趣,但是对提升自己很有帮助,感兴趣的朋友一起来学习。
在这里插入图片描述

switch函数在R中作为条件判断分支的语句,类似与if语句,但比if语句简单,可以实现更加复杂的功能,在编程中有很大帮助。
在这里插入图片描述
它的基本语法是

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

这里以R语言中switch函数的帮助文件例子做讲解(帮助文件讲的很好,不用在找例子了)
我们先生成一个centre的函数,有两个变量

centre <- function(x, type) {
  switch(type,
         mean = mean(x),
         median = median(x),
         trimmed = mean(x, trim = .1))
}

我们来看看switch的部分type是你选择的类型,是你要填入的选项,有3个备用选项待选mean,median ,trimmed,你选了哪个就会使用哪个的算法,假设你选了mean,R软件就会执行mean(x),求出x的平均值。好的我们接下来看。
这个函数有两个变量x和type,我们先生成一个x,

x <- rcauchy(10)

在这里插入图片描述
x由10个数组成

centre(x, "mean")

输入x,和"mean"后switch判断mean = mean(x),将会对x取平均数
在这里插入图片描述
其他的算法也是一样的

centre(x, "median")
centre(x, "trimmed")

在这里插入图片描述
我们继续升入了解这个函数,刚才说了数字,下面来点字符的用法
我们先生成一个字符串向量

ccc <- c("b","QQ","a","A","bb")

建立一个循环

for(ch in ccc)
  cat(ch,":", switch(EXPR = ch, a = 1, b = 2:3), "\n")

这个循环的意思是ch 在ccc这个向量中跑一遍,然后函数cat输出ch,:号和switch判断的语句,如ch等于a就输出1,等于b就输出2:3,没有符合的条件switch这里就没有输出
在这里插入图片描述
再来一个循环

for(ch in ccc)
  cat(ch,":", switch(EXPR = ch, a =, A = 1, b = 2:3, "Otherwise: last"),"\n")

这个循环和上一个不同的是上一个是没有符合的条件switch这里就没有输出,这个是没有符合的条件,switch这里输出Otherwise: last
在这里插入图片描述
下面来做个分类变量的例子,先生成个分类变量

ff <- gl(3,1, labels=LETTERS[3:1])
ff

在这里插入图片描述
我们取第一个字母C

 ff[1] # C

在这里插入图片描述
我们期望这里输出 is C,但并不是,而且出了警告

switch(ff[1], A = "I am A", B="Bb..", C=" is C")

在这里插入图片描述
因为C是分类变量,而这里把它当成字符变量判断了,我们改一下

switch(as.character(ff[1]), A = "I am A", B="Bb..", C=" is C")

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我会为你解答有关条件判断语句的问题。 在编程中,条件判断语句是一种常见的语句,用于根据不同的条件执行不同的操作。在 Minecraft 中,条件判断语句通常用于控制命令方块的执行,或者用于自定义游戏规则的实现。 常见的条件判断语句包括 if 语句switch 语句等。其中,if 语句用于根据条件执行不同的操作,它的语法格式如下: ``` if (条件) { // 操作1 } else { // 操作2 } ``` 其中,条件是一个表达式,如果该表达式的值为 true,则执行操作1,否则执行操作2。另外,else 子句是可选的,如果没有 else 子句,则在条件为 false 时不执行任何操作。 下面是一个简单的 if 语句的示例: ``` scoreboard players set @p test 1 execute if score @p test matches 1 run say hello ``` 在上面的示例中,如果玩家 @p 的 test 计分板分数为 1,则会输出 hello。如果 test 计分板分数不为 1,则不会输出任何内容。 除了 if 语句,还有一种常见的条件判断语句switch 语句。它用于根据不同的表达式值执行不同的操作。它的语法格式如下: ``` switch (表达式) { case 值1: // 操作1 break; case 值2: // 操作2 break; default: // 操作3 break; } ``` 其中,表达式是一个值,根据不同的表达式值执行不同的操作。每个 case 子句对应一种表达式值,如果表达式的值等于该子句的值,则执行相应的操作。如果表达式的值不等于任何一个 case 子句的值,则执行 default 子句中的操作。另外,每个 case 子句后面都必须加上 break 语句,用于结束该子句的执行。 下面是一个简单的 switch 语句的示例: ``` scoreboard players set @p test 1 switch @p test case 1 run say hello case 2 run say world default run say goodbye ``` 在上面的示例中,如果玩家 @p 的 test 计分板分数为 1,则会输出 hello。如果 test 计分板分数为 2,则会输出 world。如果 test 计分板分数不为 1 或 2,则会输出 goodbye。 希望这些信息能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值