我有一个包含3列的数据库。ID、日期和金额。按ID和日期排序。我想做的就是在具有相同ID的每个ID的最近一次出现之后添加一行,Date=Date+1 Month,Amount=0。
作为一个例子,我想从这个开始:
id | Date |amount |
A | 01JAN| 1 |
A | 01FEB| 1 |
B | 01FEB| 0 |
B | 01MAR| 1 |
到此:
id | Date |amount |
A | 01JAN| 1 |
A | 01FEB| 1 |
A | 01MAR| 0 | <- ADD THIS ROW
B | 01FEB| 0 |
B | 01MAR| 1 |
B | 01APR| 0 |<- ADD THIS ROW
我知道我应该使用intxn,但除此之外,我真的不知道该怎么办。我很感激任何意见。
假设DATE变量中有实际的日期值,您只需要在每组中的最后一次观察中输出两次。
data want;
set have;
by id;
output;
if last.id then do;
date=intnx('month',date,1,'b');
amount=0;
output;
end;
run;