我正在尝试使用 SAS 来限制 24 财年第一季度的日期。当我运行代码时,我发现所有观察结果都被删除,而不仅仅是日期范围之外的观察结果。下面是一个示例数据集。
input date1 date2 variable;
datalines;
10/2/2023 . 0
11/3/2023 11/22/2023 0
11/8/2023 12/30/2023 1
9/3/2023 09/20/2023 1
1/3/2020 09/10/2023 1
1/5/2020 11/30/2023 1
;
run;
这是我尝试运行的代码
data test_2;
set test;
if gt date1;
if mdy(10,01,2023) le date2 le mdy (12,31,2023) then delete;
run;
任何有关此问题的指导将不胜感激!谢谢你
您的示例 INPUT 语句无法处理这些数据行。您需要使用 MMDDYY 信息读取这些字符串,以使结果不丢失。
data want;
input date1 date2 variable;
informat date1 date2 mmddyy.;
format date1 date2 yymmdd10.;
datalines;
10/2/2023 . 0
11/3/2023 11/22/2023 0
11/8/2023 12/30/2023 1
9/3/2023 09/20/2023 1
1/3/2020 09/10/2023 1
1/5/2020 11/30/2023 1
;
您的第一个 IF 语句看起来无效。 GT 是二元运算符。它需要两个操作数,而你只给出了一个。尝试将 DATE1 与什么值进行比较?