【发布时间】:2026-02-04 14:00:01
【问题描述】:
我的数据集结构如下:
ID, Order Date, Delivery Date, Flag
1, 10/03/12, 15/03/12,
1, 17/03/12, 20/03/12, 1
我希望能够计算第一个交货日期和后续订单日期之间的日期差。最终目标是使用标识符对这些记录进行分组。
已经尝试使用 monotonic() 和 monotonic()+1 进行自连接 - 但这样做的问题是每个 ID 可以有多个不同数量的行需要组合在一起。我正在使用 SAS Enterprise Guide 7 - 遗憾的是 LAG 不可用。
我希望实现的一个例子是:
ID, Order Date, Deliv Date, Order Date_1, Deliv Date_1, DateDIFF(Deliv Date - Order Date_1)
1, 10/03/12, 15/03/12, 17/03/12, 20/03/12, 2
有什么想法吗?
【问题讨论】:
-
这可以在按
ID分组时使用 SASRetain功能完成。请提供所需数据的示例,我会给你代码。 -
所需的数据集将保留每个 ID 1 行,并根据日期差异为每个订单和交货日期保留多列。
-
好的,请添加包含示例数据的示例。我将发布一个初步答案。听起来您也想转置数据。
-
如果 ID 1 有 3 个订单,您想要 DateDiff 的 3 列吗?考虑我回答中的数据示例。
-
LAG 不可用是什么意思? LAG 仅在 PROC SQL 中“不可用”,数据步骤将按预期正常工作。
标签: sas