date - SAS 94 如何计算距离下一条记录的天数
问题描述
使用 SAS 我希望能够计算两个日期之间的天数,其中的值是距离下一条记录的天数。
所需的输出将是:
Date Num Days
10/09/2020 1
11/09/2020 1
12/09/2020 1
14/09/2020 2
15/09/2020 1
16/09/2020 1
17/09/2020 1
18/09/2020 1
20/09/2020 2
我曾尝试使用 Lag 和 Retain,但无法正常工作。
任何意见和建议将不胜感激。
解决方案
如果您按 DATE 降序对数据进行排序,则更容易,因为您只需向后查找即可找到下一个日期。所以你可以使用 LAG() 或 DIF() 函数。
data want;
set have;
by descending date;
num_days = dif(date);
run;
要模拟“领先”功能,您可以设置另一个数据副本以跳过第一次观察。
data want;
set have ;
set have(firstobs=2 keep=date rename=(date=next_date)) have(obs=1 drop=_all_);
num_days = next_date - date;
run;
推荐阅读
- python - 为什么 Pyspark 在 Windows 上比在 Linux 上慢这么多?
- mysql - 基本更新语句在使用 MariaDB 的 Kace SMA 上收到“1111;组函数使用无效”错误
- microsoft-translator - 如何处理翻译文本中的换行符?
- excel - 按下按钮时创建多个文本框时出现错误 400
- python-3.x - 使用 WMI 为远程文件夹分配权限
- angular - 在 Angular reducer 之间共享数据
- android - 从 Xamarin Forms 在 Android 上制作按钮大小写混合
- flutter - 将 15 个按钮放在行列或行列上
- .net - .net core 3.1 web api中的多个get方法
- mysql - 基于时序的mysql/pandas数据框更新列