我有一个包含ids、日期和金额的数据集。根据交易金额和所执行的交易数量,每个id可以有几行。我需要使用retain语句来找出第一次数量变化之间的时间差。我知道我需要保留所有3个变量,但不确定如何去做?任何帮助都是最好的
发布于 2011-02-20 05:09:50
下面是retain语句的基本用法。我不能从你的描述中确切地说出你需要什么。也许您需要匹配第二个变量,然后使用if ... then ... else ... (日期匹配,然后...,retain ...)不管怎样,也许这能让你开始...
DATA in;
INPUT id var1 ;
DATALINES;
1 12
1 24
1 26
2 20
2 25
2 11
;
DATA out (drop=var1_lag);
set in;
by id;
if first.id then diff=.;
else diff = var1 - var1_lag;
var1_lag = var1;
retain var1_lag;
PROC PRINT data=out;
RUN; 输出:
Obs id var1 diff
1 1 12 .
2 1 24 12
3 1 26 2
4 2 20 .
5 2 25 5
6 2 11 -14https://stackoverflow.com/questions/5049731
复制相似问题