sas 按组将最后一个值更改为第一个值

Car*_*nal 1 sas

我想更改表单的数据

id   value
1     1
1     1 
1     2  
2     7
2     7
2     7 
2     5
.     .
.     .
.     .
Run Code Online (Sandbox Code Playgroud)

id   value
1     1
1     1 
1     1  
2     7
2     7
2     7 
2     7
.     .
.     .
.     .
Run Code Online (Sandbox Code Playgroud)

也就是说,分组的最后一个值应该是分组的第一个值。我试过下面的代码

data want;
set have;
by id;
last.value=first.value;
run;
Run Code Online (Sandbox Code Playgroud)

但这没有用。有人可以帮我吗?

Ale*_*ida 6

您应该将first.id值保存在变量中retain

data want(drop=tValue);
   set have;
   by id;
   retain tValue;
   if first.id then tValue=value;
   if last.id then value=tValue;
run;
Run Code Online (Sandbox Code Playgroud)