全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9098 4
2014-07-15
新人第一次发帖,先谢谢大家点击进来~对于数据集x,如果我的最终目的是想在proc print输出时,将变量b作为分类变量,且按照b的降序排列,分组输出a的值。我在多次尝试后,发现以下程序是可行的:
复制代码
但我有一些小问题想请教各位大牛:
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数据集中,大家已经按序排列好了呀,难道不是一个简单的输出就可以了吗?

问题有点琐碎,也很基础。还望各位大牛指教。谢谢!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-7-20 15:10:04
好几天了一个回复都没有,但自己真的想不明白。求大神伸出援手啊~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-20 18:29:16
1.ERROR: 数据集 WORK.X 不是以“升序”顺序排序的。当前 BY 组中“b=5”,下一个 BY 组中“b=1”。(by不指定的话默认要按升序)NOTE: 由于出错,SAS 系统停止处理该步。(所以print结果a=6 ,b=1没输出;)

2、3可 看日志文件说明
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 14:40:26
1. by b =by ascending b by default.
2/3.by descending b ;
you must sort your dataset before using the 'by' statement,and the 'descending/ascending' should write before the 'variable'.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 23:18:50
何必不淡定。 发表于 2014-8-12 14:40
1. by b =by ascending b by default.
2/3.by descending b ;
you must sort your dataset before using  ...
再次谢谢您~最近看了点书,也慢慢明白这个问题了,发现当时提问的时候真是啥也不懂哈哈
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群