簡體   English   中英

根據 R 中的條件更改特定列值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM