首页 > 解决方案 > 日期差异和日期插补

问题描述

我有两列,Invoice_date并且due_date. 如果用elsedue_date>Invoice_date替换所有这些值,它应该是相同的。但是,我没有得到结果。以下是 R 中的代码。如果以下代码在逻辑上正确,请提供帮助。due_dateInvoice_datedue_date

Data$INVOICE_DATE1 <- ifelse((as.Date(Data$DUE_DATE) - as.Date(Data$INVOICE_DATE)) <= 0, 
                               as.Date(Data$INVOICE_DATE), as.Date(Data$DUE_DATE))

标签: rdate

解决方案


而不是ifelse你可以使用case_when像这样更直接的:

library(dplyr)

# This creates a new column as in your example
Data %>%
    mutate(INVOICE_DATE1 = case_when(
           DUE_DATE > INVOICE_DATE ~ INVOICE_DATE,
           TRUE ~ DUE_DATE))

# This replaces due date as in your description
Data %>%
    mutate(DUE_DATE= case_when(
           DUE_DATE > INVOICE_DATE ~ INVOICE_DATE,
           TRUE ~ DUE_DATE))

如果你想坚持你的旧结构,你需要实现apply迭代向量中的所有元素ifelse


推荐阅读