r语言用switch函数,不用循环实现:对于向量BMI, 若 BMI 值小于等于 18,记为”thin”,若处于 (18,22],记为”healthy”,若处于 (22,26], 记为”strong”,若处于 (26,∞],记为”fat”.
时间: 2024-05-09 18:21:39 浏览: 11
以下是使用switch函数实现的代码:
```
BMI <- c(16, 20, 23, 27, 30)
result <- switch(
floor((BMI - 18) / 4) + 1,
"thin",
"healthy",
"strong",
"fat"
)
```
解释一下代码:
- 第一行定义了一个向量BMI,包含了5个数值。
- 第二行使用了switch函数,其中第一个参数是一个整数值,表示要进行匹配的表达式。floor((BMI - 18) / 4) + 1 表示先将每个BMI值减去18,然后除以4取整数,最后加上1,得到的结果是一个整数向量,对应了每个BMI所属的区间。例如,16属于第1个区间,20属于第2个区间,23属于第3个区间,27和30属于第4个区间。
- 第三到六个参数表示四个可能的结果,即"thin"、"healthy"、"strong"和"fat",对应了四个区间。当匹配到第n个区间时,就返回第n个结果。例如,当BMI为16时,匹配到第1个区间,就返回"thin"。
相关问题
r语言用switch函数实现:对于向量BMI, 若 BMI 值小于等于 18,记为”thin”,若处于 (18,22],记为”healthy”,若处于 (22,26], 记为”strong”,若处于 (26,∞],记为”fat”.
switch函数的语法为:
switch(EXPR, CASE1, CASE2, ..., DEFAULT)
其中,EXPR为要测试的表达式,CASE1、CASE2、...为不同情况下的操作,DEFAULT为默认情况下的操作。在本题中,EXPR为BMI向量中的每个元素,CASE1、CASE2、...分别对应BMI值所在的不同区间,DEFAULT为当BMI值小于等于0时的操作。
下面是用switch函数实现本题的代码:
```r
# 生成BMI向量
BMI <- c(15, 20, 23, 25, 30)
# 定义switch函数
for (bmi in BMI) {
result <- switch(
TRUE,
bmi <= 18, "thin",
bmi > 18 & bmi <= 22, "healthy",
bmi > 22 & bmi <= 26, "strong",
bmi > 26, "fat",
"invalid"
)
print(paste("BMI为", bmi, ",类别为:", result))
}
```
运行结果为:
```
[1] "BMI为 15 ,类别为: thin"
[1] "BMI为 20 ,类别为: healthy"
[1] "BMI为 23 ,类别为: strong"
[1] "BMI为 25 ,类别为: strong"
[1] "BMI为 30 ,类别为: fat"
```
可以看到,根据BMI值的不同,switch函数能够正确地将其分类为“thin”、“healthy”、“strong”或“fat”。
switch函数 r语言
在R语言中,`switch()`函数可以根据指定的值选择执行不同的操作。它的基本语法如下:
```
switch(EXPR, CASE1, CASE2, ..., DEFAULT)
```
其中,`EXPR`是一个表达式,可以是一个常量、变量或函数调用,用于指定要选择的操作;`CASE1`、`CASE2`等表示不同的操作,可以是任意类型的R语言表达式;`DEFAULT`表示当`EXPR`的值不匹配任何一个`CASE`时要执行的操作(可选)。
`switch()`函数的执行过程为:先计算`EXPR`的值,然后根据`EXPR`的值选择相应的`CASE`,执行对应的操作。如果`EXPR`的值不匹配任何一个`CASE`,则执行`DEFAULT`指定的操作(如果有)。
下面是一个简单的示例,展示了如何使用`switch()`函数:
```
x <- 2
result <- switch(x,
"First case",
"Second case",
"Third case")
print(result) # 输出 "Second case"
```
在这个例子中,`x`的值为2,根据`switch()`函数的语法,程序会选择第二个`CASE`,即返回字符串"Second case"。最终,`result`的值为"Second case"。
需要注意的是,`switch()`函数的`CASE`和`DEFAULT`可以是任意类型的R语言表达式,可以是函数、变量、常量等。在使用时,需要根据具体情况进行调整。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)