SAS小白斗胆分享:
我遇到的问题是:我有将近三千家股票进行分组回归,然后现在我只想要上证180的股票,该怎么做?
法1:可以将需要的上证180代码下载下来,先用word或者txt的替换等功能只留下代码(最好一行一个代码),然后转为excel,第一列就是代码,然后随便再另外设一列假设叫y,这一列值全都记为1或者2或者任意字符或者任意数值。将这个excel然后导入进sas和我们之前的数据集用Merge合并(注意股票要设置为同等位数的字符型),然后用if语句 if y=1 then output 逻辑库.数据集;
法2:原先的数据集的股票名那一列是字符型,先将其变为数值型;
data work.a2;
set work.a1;
Stkcd1=input(stkcd,6.);
run;
在用if语句选取符合上证180代码的股票;
data work.a3;
set work.a2;
if Stkcd1 in (600000 600009 600010
600011 600016 600019
600025 600028 600029
600030 600031 600036
600038 600048 600050
600061 600066 600089
600104 600109 600111
600118 600132 600143
600150 600161 600176
600183 600196 600276
600298 600305 600309
600340 600346 600352
600362 600383 600406
600426 600436 600438
600489 600511 600516
600519 600521 600522
600536 600547 600570
600584 600585 600588
600598 600600 600606
600621 600660 600690
600699 600703 600739
600741 600745 600760
600763 600779 600809
600827 600837 600859
600862 600867 600872
600886 600887 600893
600895 600900 600909
600918 600919 600926
600958 600989 600999
601009 601012 601021
601066 601088 601099
601100 601108 601111
601138 601155 601162
601166 601169 601186
601198 601211 601216
601225 601229 601236
601238 601288 601318
601319 601328 601336
601360 601377 601390
601398 601456 601555
601601 601607 601618
601628 601633 601658
601668 601669 601688
601689 601696 601698
601766 601778 601788
601800 601816 601818
601857 601865 601872
601877 601878 601881
601888 601899 601901
601916 601919 601933
601939 601966 601985
601988 601989 601990
601995 603019 603087
603160 603195 603259
603288 603369 603392
603501 603517 603589
603658 603659 603799
603806 603833 603882
603986 603993 688012
688111 688126 688169 )
then output work.3;
run;
嘻嘻其实我想分享的就是if XXX in ( 1 3 5 ) then output 逻辑库.数据集;
(因为我苦于这个问题半小时最后解决了嘻嘻快乐!!!)