【发布时间】:2021-08-15 13:38:30
【问题描述】:
这是我的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 = "Normal"
所需的输出应如下所示。
Distance Speed Label
30 25 Normal
20 24 Danger
19 15 Normal
20 21 Danger
有什么方法可以有效地做到这一点?
【问题讨论】:
-
一种方法是:
df$Label = ifelse(df$Distance == 20 & df$Speed >= 18, "Danger", "Normal") -
所有 3 种方法都运行良好。谢谢
标签: r dplyr data.table grouping labeling