SAS软件一些基本操作.docVIP

  • 16
  • 0
  • 约6.24千字
  • 约 7页
  • 2016-12-03 发布于贵州
  • 举报
SAS软件一些基本操作

一、会计研究中的STATA运用 - Clive Lennox的个人网站http://ihome.ust.hk/~accl/Phd_teaching.htm - 为中山大学会计系所授课程 · 课件和演示用数据 二、高惠璇等编译,SAS系统 BASE SAS软件使用手册,中国统计出版社,1997; 高惠璇等编译,SAS系统 SAS/STAT软件使用手册,中国统计出版社,1997; 这两本书类似于字典,用来查,而不是用来读; 三、将EXCEL数据导入SAS 比如,要将H盘SAS目录中的profit.xls文件导入SAS,并命名为profit; 打开SAS,在编辑器中写入程序: proc import out=profit datafile=H:\SAS\profit.xls dbms=excel2000 replace; run; 结果:在SAS逻辑库的Work中,就会出现profit数据集; 四、右键点开profit数据集查看数据集情况; 将Accper转变成年度; data profit;set profit; year=substr(accper,1,4)+0; 字符加0直接转换为数字格式。 run; 五、数据排序:如果想剔除重复的观测值,可以 加nodupkey,noudupkey可省略 - 对profit数据按照stkcd和year进行排序; proc sort data=profit nodupkey; by stkcd year; run; 变量改名 data profit1;set profit; rename stkcd=code; run; 六、数据横向合并:在对两个或多个数据集进行merge时,需要首先按照关键变量如公司代码和年度)进行排序; - 比如,要将Profit和solvency进行merge: 先将solvency.xls文件导入SAS proc import out=solvency datafile=“H:\SAS\solvency.xls dbms=excel2000 replace; run; data solvency;set solvency; year=substr(accper,1,4)+0; run; proc sort; by stkcd year;run; 省略时,默认对最近的数据集进行排序 data fin_ratio;merge profit(in=a) solvency; by stkcd year; if a; run; 注意:data x1;merge tmp1(in=a) tmp2;by var1 var2;if a;run - 表示已tmp1为基础进行合并,合并后的数据集样本数同tmp1相同; data x1;merge tmp1 tmp2;by var1 var2;run - 包括了tmp1和tmp2的所有观测值; data x1;merge tmp1(in=a) tmp2(in=b) ;by var1 var2; if a=1 and b=1;run - 只包括tmp1和tmp2中共有的观测值; 七、纵向合并(append) data x1; set tmp1 tmp2; Run; - SAS自己会去找对应的变量; 八、产生新的虚拟变量 比如,要从fin_ratio产生一个2006以后的虚拟变量,即年度在2006年后的,取值为1,否则为0; 则: data fin_ratio;set fin_ratio; after2006=0; 先对after2006变量赋0值。 if year=2006 then after2006=1; run; 九、剔除变量空缺的观测值; CSMAR数据集中,有些变量空缺,导入SAS为“.”,有些无点,为一个空格,则可以通过如下命令剔除这些数据缺失的观测值: - 比如,希望剔除fin_ratio数据中,ROS缺失的样本; proc sort data=fin_ratio;by ros;run; data tmp1;set fin_ratio; if ros=. or ros= then delete; run; 假如要把ROS,ROA,ROE的缺失样本同时删除: data tmp2;set fin_ratio; if ros+roa+roe=. then delete; run;

文档评论(0)

1亿VIP精品文档

相关文档