我想输出变量pr的最后一个值。子组到SAS数据集,最好只需几步。下面的代码可以做到这一点,但是我希望在一个步骤a by variable; if last.variable then output;
中完成它,就像只有1个副变量的情况一样。
data two;
input year firm price;
cards;
1 1 48
1 1 45
2 2 50
1 2 42
2 1 41
2 2 51
2 1 52
1 1 43
1 2 52;
run;
proc sort data = two;by year firm;run;
/* a) Create id across both sub-groups */
data two1;
set two;
by year firm;
retain case_id;
if FIRST.year OR first.firm then case_id + 1;
run;
/* b) Use id to output last values across both by-groups */
data two2;
set two1;
by case_id;
if last.case_id then output;
run;
proc print data = two1;run;
proc print data = two2;run;
只有1个副变量,可以组合标记为a)和b)的两个步骤。是否可以使用多个副组?
答案 0 :(得分:1)
在数据步骤a)中添加条件if lst.firm then output two2
。
最终代码如下:
data two1 two2;
set two;
by year firm;
retain case_id;
if FIRST.year OR first.firm then case_id + 1;
if last.firm then output two2;
output two1;
run;