写一个sas程序,判断某一条记录的结束日期等于下一条记录的开始日期,该数据有50条记录
时间: 2023-03-15 14:50:49 浏览: 121
data _null_;
set table;
if lag(start_date) eq end_date then call symput('flag','true');
else call symput('flag','false');
run;
%if &flag eq 'true' %then %do;
do i=1 to 50;
if lag(start_date) eq end_date then do;
output;
end;
end;
%end;
else %do;
do i=1 to 50;
if lag(start_date) ne end_date then do;
output;
end;
end;
%end;
相关问题
写一个sas,有姓名,用药,开始日期,结束日期4个变量,需要标记出同一姓名下用药相同,并且上一条的结束日期等于本条记录的开始日期
我可以为您提供一个简单的 SAS 程序,用于标记姓名、用药、开始日期和结束日期四个变量:data label;
set data;
by 姓名 用药;
if first.姓名 then 标记 = 1;
else if 结束日期 = lag(开始日期) then 标记 = lag(标记);
else 标记 + 1;
run;
sas 将一个字段去重 保留数据日期最新的记录
可以使用PROC SORT和DATA步骤中的FIRST.和LAST.特殊变量来实现。假设要对数据集中的Var1字段进行去重,保留数据日期最新的记录,可以按照以下步骤操作:
1. 使用PROC SORT按照Var1和日期字段(假设为Date)进行排序。
2. 在DATA步骤中使用BY语句指定Var1为排序关键字。
3. 使用IF语句和FIRST.和LAST.特殊变量来判断是否为每个Var1值的第一个和最后一个记录。如果是最后一个记录,则保留该记录。
例如,以下是一个示例代码:
```
proc sort data=yourdata;
by Var1 Date descending;
run;
data yourdata2;
set yourdata;
by Var1;
if last.Var1;
run;
```
这将对数据集yourdata进行按照Var1和日期字段的降序排序,并保留每个Var1值的日期最新的记录。结果将保存在新的数据集yourdata2中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)