r - 日期差异和日期插补
问题描述
我有两列,Invoice_date
并且due_date
. 如果用elsedue_date>Invoice_date
替换所有这些值,它应该是相同的。但是,我没有得到结果。以下是 R 中的代码。如果以下代码在逻辑上正确,请提供帮助。due_date
Invoice_date
due_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))
解决方案
而不是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
推荐阅读
- java - 从 java 设置一个 kotlin lambda
- mongodb - 根据两个字段将文档拆分为两个文档(带聚合)
- python - 使数据加载器(屈服函数)缓冲其下一个产量
- acumatica - 在新屏幕上发布发票
- codenameone - CodenameOne 是否会支持将图像和/或文件保存到用户可以在应用程序外部访问的位置?
- c - 浮点数转换方法
- javascript - 包含使用导入时未定义 Webpack 函数
- oracle - 将 Null 传递到带有 DATA_DEFAULT 集的 Oracle 表的 NOT NULLABLE 列时出错 - 实体框架
- python-3.x - 用二次多项式拟合函数 f(x,y,z)
- twitter-bootstrap - Boostrap 表单单选按钮的长度不同