全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
15565 8
2016-10-03
悬赏 10 个论坛币 已解决
数据源很简单,就股票代码(code)、交易时间time、与日最高价high。proc sort data=d;
by high;run;
上面的语句容易理解,就是对数据集d,按照high从小到大进行排序。

但是,我的老师给出了这样的语句,很迷惑:
proc sort data=test2 out=test3 nodup
proc sort data=test2 out=test3 nodupkey
data data1 data2;
        set test3;
        by code time;
        if first.code then output data1;
        if last.code then output data2;
run;

第一,这里by后面加了两个变量,如果是进行排序,那是什么意思呢?不可能是对数据同时按照code和time进行排序吧?逻辑是什么?
第二,if first.stkcd then output data1;这句什么意思呢?first是什么?


谢谢MUA



最佳答案

DriftKingHan 查看完整内容

1. 在DATA步中,BY语句是将obs分组的意思 在使用BY语句之前,变量所在的数据集应该事先经过排序或索引 在PROC SORT中,BY var1 var2; 的意思是 先按var1升序排序,对于有相同var1值的obs,再将这些obs按照var2升序排序 2. 在数据步中,SAS会为每一个BY语句中的变量建立2个临时变量 FIRST.var 和 LAST.var 当当前的obs是var某一个组中的第一个obs时,则 FIRST.var=1,反之为0 当当前的obs是var某一个组中的最后一个ob ...
二维码

扫码加我 拉你入群

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

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

全部回复
2016-10-3 16:31:43
1.
在DATA步中,BY语句是将obs分组的意思
在使用BY语句之前,变量所在的数据集应该事先经过排序或索引

在PROC SORT中,BY var1 var2; 的意思是
先按var1升序排序,对于有相同var1值的obs,再将这些obs按照var2升序排序

2.
在数据步中,SAS会为每一个BY语句中的变量建立2个临时变量
FIRST.var 和 LAST.var
当当前的obs是var某一个组中的第一个obs时,则 FIRST.var=1,反之为0
当当前的obs是var某一个组中的最后一个obs时,则 LAST.var=1,反之为0


以上是我的理解
二维码

扫码加我 拉你入群

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

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

2016-10-3 22:37:14
先依照code排序

然后每个code中再依照time排序
二维码

扫码加我 拉你入群

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

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

2016-10-4 17:16:54
DriftKingHan 发表于 2016-10-3 22:56
1.
在DATA步中,BY语句是将obs分组的意思
在使用BY语句之前,变量所在的数据集应该事先经过排序或索引
可以讲一下在我给的那段程序中,使用fisrt.var的是要进行什么操作呢?我看不太懂
二维码

扫码加我 拉你入群

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

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

2016-10-4 18:44:05
the_fly_winds 发表于 2016-10-4 17:16
可以讲一下在我给的那段程序中,使用fisrt.var的是要进行什么操作呢?我看不太懂
这样的目的是有选择的输出
比如if first.code then output data1;
是对有相同code值的一组obs中的第一个(first.code = 1, 则为TRUE),输出到数据集data1中
对于不是一组中第一个的,则不执行 output data1 这个操作,即不输出
建议对比一下数据集test3和输出的结果data1 data2,这样更容易理解
二维码

扫码加我 拉你入群

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

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

2019-1-21 20:21:59
DriftKingHan 发表于 2016-10-3 16:31
1.
在DATA步中,BY语句是将obs分组的意思
在使用BY语句之前,变量所在的数据集应该事先经过排序或索引
当当前的obs是var某一个组中的第一个obs时,这里的某一个组怎么理解?
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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