微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据多个条件为每条记录分配标签

如何解决根据多个条件为每条记录分配标签

这是我的 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

我需要根据两个条件标记每一行:

  1. 如果距离 = 20 并且
  2. 如果速度大于或等于 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'))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。