[英]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.