根据多个条件为每条记录分配标签
Assigning label to each record based on multiple conditions
这是我的 df
(data.frame)
Distance <- c(30, 20, 32, 20)
Speed <- c(25, 24, 17, 21)
df <-data.frame(Distance,Speed)
df
Distance Speed
1 30 25
2 20 24
3 19 15
4 20 21
我需要根据两个条件标记每一行:
- 如果距离 = 20 并且
- 如果速度大于等于18.
如果条件满足 label = "Danger"
如果条件不满足 label = "Normal"
所需的输出应如下所示。
Distance Speed Label
30 25 Normal
20 24 Danger
19 15 Normal
20 21 Danger
有什么有效的方法吗?
也许这应该有效。您使用 case_when
创建条件向量
require(tidyverse)
df %>%
mutate( Label = case_when( Distance == 20 & Speed >= 18 ~ "Danger" , TRUE ~ "Normal"))
您可以使用带有条件的 if 语句,然后将答案转换为标签。
library(dplyr)
df <- df %>% mutate(Label = ifelse(Distance == 20 & Speed >= 18, 'Danger', 'Normal'))
这是我的 df
(data.frame)
Distance <- c(30, 20, 32, 20)
Speed <- c(25, 24, 17, 21)
df <-data.frame(Distance,Speed)
df
Distance Speed
1 30 25
2 20 24
3 19 15
4 20 21
我需要根据两个条件标记每一行:
- 如果距离 = 20 并且
- 如果速度大于等于18.
如果条件满足 label = "Danger" 如果条件不满足 label = "Normal"
所需的输出应如下所示。
Distance Speed Label
30 25 Normal
20 24 Danger
19 15 Normal
20 21 Danger
有什么有效的方法吗?
也许这应该有效。您使用 case_when
require(tidyverse)
df %>%
mutate( Label = case_when( Distance == 20 & Speed >= 18 ~ "Danger" , TRUE ~ "Normal"))
您可以使用带有条件的 if 语句,然后将答案转换为标签。
library(dplyr)
df <- df %>% mutate(Label = ifelse(Distance == 20 & Speed >= 18, 'Danger', 'Normal'))