如何在 r 中编写案例陈述(附示例)
case 语句是一种循环条件并在满足第一个条件时返回值的语句类型。
在 R 中实现 case 语句的最简单方法是使用dplyr包中的case_when()函数:
library (dplyr) df %>% mutate(new_column = case_when( col1 < 9 ~ ' value1 ', col1 < 12 ~ ' value2 ', col1 < 15 ~ ' value3 ', TRUE ~ ' Great '))
这个特定的函数查看名为col1的列中的值并返回:
- “ value1 ” 如果 col1 中的值小于 9
- “ value2 ” 如果 col1 中的值小于 12
- “ value3 ” 如果 col2 中的值小于 15
- “ value4 ” 如果前面的条件都不成立
请注意, TRUE相当于“else”语句。
下面的例子展示了如何在实际中使用这个功能。
示例:R 中的 case 语句
假设我们在 R 中有以下数据框:
#create data frame df <- data. frame (player=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), points=c(6, 8, 9, 9, 12, 14, 15, 17, 19, 22)) #view data frame df player points 1 1 6 2 2 8 3 3 9 4 4 9 5 5 12 6 6 14 7 7 15 8 8 17 9 9 19 10 10 22
我们可以使用以下语法编写一个 case 语句,该语句创建一个名为class的新列,其值由Points列中的值确定:
library (dplyr) #create new column using case statement df %>% mutate(class = case_when( points < 9 ~ ' Bad ', points < 12 ~ ' OK ', points < 15 ~ ' Good ', TRUE ~ ' Great ')) player points class 1 1 6 Bad 2 2 8 Bad 3 3 9 OK 4 4 9 OK 5 5 12 Good 6 6 14 Good 7 7 15 Great 8 8 17 Great 9 9 19 Great 10 10 22 Great
case 语句查看点列中的值并返回:
- 如果分数栏中的值小于 9,则为“坏”
- 如果点列中的值小于 12,则“确定”
- 如果分数栏中的值小于 15,则为“好”
- 如果前面的条件都不成立,则“很好”
新列称为class ,因为这是我们在mutate()函数中指定的名称。
其他资源
以下教程解释了如何在 R 中执行其他常见任务:
如何在 R 中使用具有多个条件的 If 语句
如何在 R 中编写嵌套的 If Else 语句
如何在 R 中编写第一个 tryCatch() 函数