[英]Changing specific column values based on conditions in R
我在 R 中有以下名为“Saty”的数据框
一天 | 到达日期 | 出发日期 |
---|---|---|
是的 | 2022-01-10 | 不适用 |
不 | 2021-05-12 | 2021-06-01 |
是的 | 2021-12-01 | 2021-12-01 |
是的 | 2022-03-01 | 不适用 |
我想修改数据框,如果 One_Day 列值为“是”,我的“到达日期”和“出发日期”应该相同,如下面的数据框。
一天 | 到达日期 | 出发日期 |
---|---|---|
是的 | 2022-01-10 | 2022-01-10 |
不 | 2021-05-12 | 2021-06-01 |
是的 | 2021-12-01 | 2021-12-01 |
是的 | 2022-03-01 | 2022-03-01 |
如何通过在 R 中编码来实现这一点?
你需要的是一个ifelse
语句。
library(dplyr)
Saty %>% mutate(Departure_Date = ifelse(One_Day == "Yes", Arrived_Date, Departure_Date))
One_Day Arrived_Date Departure_Date
1 Yes 2022-01-10 2022-01-10
2 No 2021-05-12 2021-06-01
3 Yes 2021-12-01 2021-12-01
4 Yes 2022-03-01 2022-03-01
使用显示的数据,这也有效: coalesce
尽管如此,我很确定对于您的原始数据,您将需要@benson23+1 提供的ifelse
语句,但这对您来说可能也很有趣:
libray(dplyr)
df %>%
mutate(Departure_Date = coalesce(Departure_Date, Arrived_Date))
One_Day Arrived_Date Departure_Date
1 Yes 2022-01-10 2022-01-10
2 No 2021-05-12 2021-06-01
3 Yes 2021-12-01 2021-12-01
4 Yes 2022-03-01 2022-03-01
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.