3454 14

[原创博文] 求解答 一个程序看不懂% [推广有奖]

  • 4关注
  • 0粉丝

大专生

96%

还不是VIP/贵宾

-

威望
0
论坛币
480 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1306 点
帖子
50
精华
0
在线时间
36 小时
注册时间
2011-8-4
最后登录
2012-3-24

楼主
FFL翻白眼死撑鱼 在职认证  发表于 2011-8-9 11:39:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
libname res 'F:\sas';

data flow4(keep=stkcd date buys sells fails);                     
set res.sz_amount res.sh_amount;
run;

proc sql;
create table flow as
select a.*,count(a.stkcd) as count
from flow4 as a
group by a.stkcd;
quit;

data flow;
set flow;
if count>120;
run;

proc sort data=flow;
by stkcd date;
run;


这是什么意思? 求解答我是sas新手到不能再新 谢谢
二维码

扫码加我 拉你入群

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

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

关键词:看不懂 求解答 proc sql libname amount

回帖推荐

dyes0506 发表于4楼  查看完整内容

/*定义逻辑库*/ libname res 'F:\sas'; /*将深圳交易所交易数据与上海交易所交易数据串接,只保留stkcd date buys sells fails这些列*/ data flow4(keep=stkcd date buys sells fails); set res.sz_amount res.sh_amount; run; /*将串接后的表按tkcd(股票名)分组并统计交易次数*/ proc sql; create table flow as select a.*,count(a.stkcd) as count from flow4 as a group by a.stkcd; quit; ...

本帖被以下文库推荐

沙发
honghejing 发表于 2011-8-9 12:25:37
把stkcd的相同值的observation数计算一下,看看是否大于120,是的话就output出来

藤椅
yugao1986 发表于 2011-8-9 12:31:30
仅供参考,如有不妥请楼下修正
  1. /*定义res永久库,逻辑地址f:\sas*/
  2. libname res 'F:\sas';
  3. /*读取且合并res.sz_amount sh_amount,保留stkcd等5个变量*/
  4. data flow4(keep=stkcd date buys sells fails);                     
  5. set res.sz_amount res.sh_amount;
  6. run;
  7. /*依据flow4创建新的数据flow,包括了新增累计'stkcd'变量count*/
  8. proc sql;
  9. create table flow as
  10. select a.*,count(a.stkcd) as count
  11. from flow4 as a
  12. group by a.stkcd;
  13. quit;
  14. /*保留flow中变量count大于120的观测值*/
  15. data flow;
  16. set flow;
  17. if count>120;
  18. run;
  19. /*依据stkcd,date对数据flow排序*/
  20. proc sort data=flow;
  21. by stkcd date;
  22. run;
复制代码
三人行必有我师

板凳
dyes0506 发表于 2011-8-9 12:33:32
/*定义逻辑库*/
libname res 'F:\sas';
/*将深圳交易所交易数据与上海交易所交易数据串接,只保留stkcd date buys sells fails这些列*/
data flow4(keep=stkcd date buys sells fails);                     
set res.sz_amount res.sh_amount;
run;
/*将串接后的表按tkcd(股票名)分组并统计交易次数*/
proc sql;
create table flow as
select a.*,count(a.stkcd) as count
from flow4 as a
group by a.stkcd;
quit;

/*筛选只保留交易次超过120次的股票*/
data flow;
set flow;
if count>120;
run;
/*对保留的股票数据按股票名和交易时间升序排列*/
proc sort data=flow;
by stkcd date;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

从数据到结论过程关键的是人不是软件......

报纸
soporaeternus 发表于 2011-8-9 14:00:02
估计是交易天数,而非交易次数
源数据是股票到天的汇总数据吧......
Let them be hard, but never unjust

地板
FFL翻白眼死撑鱼 在职认证  发表于 2011-8-16 09:42:29
能不能再问一下……我在书里没找到

%let depvar=  &regvar lag1 lag2 lag3 lag4 lag5  ;

这个一般是什么意思呢?

还有一些语句为什么输入到sas里的文字都是黑色的 不会变颜色


/************************************************************************************
Purpose: 0.  Fama-MacBeth regression and Newwey _West 检验  by SAS
**************************************************************************************/

%macro FMReg(y=  ,out=  );

** 2. drop irrelevant estimates;
proc sort data=FB;
by _model_ date; run;
data FB2; set FB; drop  &y _TYPE_  _DEPVAR_  _RMSE_ _IN_  _P_  _EDF_;
rename _model_=model; run;

proc transpose data=FB2 out=FBny name=name prefix=coef;
by model date; run;
data FBny; set FBny; retain code;
by model date; code=code+1; if first.date then code=1;run;

proc sort data=FBny; by model code name;run;


类似于这样

7
FFL翻白眼死撑鱼 在职认证  发表于 2011-8-16 09:42:57
soporaeternus 发表于 2011-8-9 14:00
估计是交易天数,而非交易次数
源数据是股票到天的汇总数据吧......
能不能再问一下……我在书里没找到

%let depvar=  &regvar lag1 lag2 lag3 lag4 lag5  ;

这个一般是什么意思呢?

还有一些语句为什么输入到sas里的文字都是黑色的 不会变颜色


/************************************************************************************
Purpose: 0.  Fama-MacBeth regression and Newwey _West 检验  by SAS
**************************************************************************************/

%macro FMReg(y=  ,out=  );

** 2. drop irrelevant estimates;
proc sort data=FB;
by _model_ date; run;
data FB2; set FB; drop  &y _TYPE_  _DEPVAR_  _RMSE_ _IN_  _P_  _EDF_;
rename _model_=model; run;

proc transpose data=FB2 out=FBny name=name prefix=coef;
by model date; run;
data FBny; set FBny; retain code;
by model date; code=code+1; if first.date then code=1;run;

proc sort data=FBny; by model code name;run;


类似于这样

本文来自: 人大经济论坛 SAS专版 版,详细出处参考: https://bbs.pinggu.org/forum.php? ... amp;from^^uid=2737095

8
FFL翻白眼死撑鱼 在职认证  发表于 2011-8-16 09:43:16
yugao1986 发表于 2011-8-9 12:31
仅供参考,如有不妥请楼下修正
非常谢谢!

9
FFL翻白眼死撑鱼 在职认证  发表于 2011-8-16 09:44:31
dyes0506 发表于 2011-8-9 12:33
/*定义逻辑库*/
libname res 'F:\sas';
/*将深圳交易所交易数据与上海交易所交易数据串接,只保留stkcd d ...
谢谢! 我已经大概知道这个意思了 遇见新的困难了! 谢谢你

10
soporaeternus 发表于 2011-8-16 09:47:10
FFL翻白眼死撑鱼 发表于 2011-8-16 09:42
能不能再问一下……我在书里没找到

%let depvar=  &regvar lag1 lag2 lag3 lag4 lag5  ;
就是把depvar宏定义为宏regvar的值和lag1-lag5这些字符串,为了便于之后的调用
关于语法高亮的问题,好像MACRO里的代码都不高亮显示的,至少我的9.1.3是这样......
Let them be hard, but never unjust

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 21:44