l****y 发帖数: 108 | 1 var1
1
2
3
4
5
用什么办法求逐级递减的差呢
就是想得到个变量是2-1, 3-2, 4-3,5-4这种呢
看起来好像很简单的,但是我实在不会,在此多谢 |
c*****a 发帖数: 808 | 2 hi, i am learning SAS too.
%let samplesize=5;
data a;
input x;
cards;
1
2
3
4
5
;
data b (rename=(x=y) keep=x);
if _n_ =1 then do i=&samplesize to 1 by -1;
pt=nobs-i;
set a nobs=nobs point=pt;
output ;
end;
stop;
run;
option missing = 0;
data final;
set a;
set b;
z=x-y;
run;
The outcome is :
Obs x y z
1 1 0 0
2 2 1 1
3 3 2 1
4 4 3 1
5 5 4 1 |
s******r 发帖数: 1524 | 3 x-lag(x);
【在 l****y 的大作中提到】 : var1 : 1 : 2 : 3 : 4 : 5 : 用什么办法求逐级递减的差呢 : 就是想得到个变量是2-1, 3-2, 4-3,5-4这种呢 : 看起来好像很简单的,但是我实在不会,在此多谢
|
c*****a 发帖数: 808 | 4 原来还有这么简单的方法啊。。。lag, 用在time series方便了 |
l****u 发帖数: 529 | |
l****y 发帖数: 108 | 6 原来还有lag, dif这种function啊,太好了
谢谢
其实我本来是想建一个indicator variable,
X的值增加就是1, 减少就是0,
想用retain啊什么的,没想到这么简单 |