如何在 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() 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注