r - 根据R中的条件查找日期差异
问题描述
我想找到基于日期差异的条件。
数据框就像
Order_Id ReceivedDate DueDate (Y-m-d)
---------------------------------------
E1625 N/A 2021-05-10
E8655 2021-01-03 2021-01-03
E1360 2021-03-23 2021-03-15
E2347 2021-03-20 2021-04-01
E7807 2021-03-15 2021-04-20
.
.
.
要计算日期差异:
df$received_delay <- ifelse(is.null(df$ReceivedDate) , 0,
ifelse((difftime(df$ReceivedDate, df$DueDate, units = "days"))< 0, 0,
difftime(df$ReceivedDate, df$DueDate, units = "days")))
但得到了预期的结果。
预期结果:
Order_Id ReceivedDate DueDate received_delay(days)
----------------------------------------------------------
E1625 N/A 2021-05-10 0
E8655 2021-01-03 2021-01-03 0
E1360 2021-03-23 2021-03-15 8
E2347 2021-03-20 2021-04-01 0
E7807 2021-03-15 2021-04-20 5
.
解决方案
df$received_delay <- ifelse(is.na(df$ReceivedDate) , 0,
ifelse((difftime(df$ReceivedDate, df$DueDate, units = "days"))< 0, 0,
difftime(df$ReceivedDate, df$DueDate, units = "days")))
应该工作或
df$received_delay <- ifelse(difftime(df$ReceivedDate, df$DueDate, units = "days")< 0 | is.na(difftime(df$ReceivedDate, df$DueDate, units = "days")), 0,
difftime(df$ReceivedDate, df$DueDate, units = "days"))
推荐阅读
- python - 操作系统在打开文件时如何传递文件?
- mongodb - 如果不存在但不更新,如何在猫鼬中创建
- python - 解析 JSON 文件和对选定字段使用 API PUSH 时遇到问题
- python - 如何解决有关“NoneType”错误的问题?
- r - 在闪亮的仪表板中向散点图点添加音频
- sql-server - 我们如何在 SQL Server 2008 R2 中使用 LAG()?
- c++ - Understanding TOTW 153 example with namespace polution
- gradle - Intellij 未找到 gradle 中包含的运行时依赖项
- css - 设置行高以适应 CSS Grid 中行中的最高单元格
- debugging - 如何在 VSCode 调试模式下显示整个值