- data x;
- input a b;
- cards;
- 1 1
- 2 1
- 3 3
- 4 4
- 5 5
- 6 1
- ;
- run;
- proc sort data=x out=x2 ;
- by descending b;
- run;
- proc print data=x2;
- by b notsorted;
- run;
1 如果不考虑我descending 的需求,直接进行proc print data=x; by b;run;的话,为什么会丢失第六行数据,即a=6 b=1,无法归集到第1 2行所在的b=1组呢?
2 我注意到proc print步中,by 指令后面也是可以跟descending的,但是只能输出b=1这一组,然后就结束了。这个是为什么呢?
3 先进行proc sort,再proc print的话,确实不会再出现问题1中丢失数据的问题了,但是如果不加notsorted的话,就只能输出b=5这一组,这是为什么呢?我的理解中在x2数据集中,大家已经按序排列好了呀,难道不是一个简单的输出就可以了吗?
问题有点琐碎,也很基础。还望各位大牛指教。谢谢!



雷达卡



好几天了一个回复都没有,但自己真的想不明白。求大神伸出援手啊~~

京公网安备 11010802022788号







