SAS综合题1-15资料.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS金融数据处理综合练习题 创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。分别用DATA步,DATA步数组语句和IML过程实现。 Drop=i 删除变量i,否则就会有10001个变量。 i会扫描到第101次。 Retain语句给变量付初值。 Data步: data p1(drop=i); retain x1-x10000 0; do i=1 to 100; output; end; run; data步数组: Array:隐含下标数组,数值变量,默认下标变量_i_ Do over, 隐含下标数组元素执行do组 Ranuni:随机数函数,返回来自均匀分布的随机变量。 Output:输出观测到数据集中,p157 data p1(drop=i); array x x1-x10000; do i=1 to 100; do over x; x=ranuni(0); end; output; end; run; 宏: %macro names(name,number,obs); data a; %do i=1 %to obs; %do n=1 %to number; namen=1; %end; output; %end; Run; %mend names; %names(x, 10000,100); 多种方法创建包含变量X的10000个观测值的SAS数据集。 初值为0: data a; retain x 0; do i=1 to 10000; drop i; output; end; run; 随机数: data a (drop=i); do i=1 to 10000; x=ranuni(0); output; end; run; 读入其他数据文件:(先创建数据文件a,再从中读取) data a (drop=i); do i=1 to 10000; x=ranuni(0); output; file x:\a.txt; put x; end; run; data b; infile x:\a.txt; input x; output; run; 读入其他数据集: data a; do i=1 to 10000; x=ranuni(0); output; end; run; data b; set a; drop i; output; run; 数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填充开始到结束日之间的所有日期值。 【先在sas中建立逻辑库Resdat的链接,便于数据集的引用】 data a;/*可用用stk000001数据集*/ set Resdat.stk000001; if date=. then delete;/*要排序之前必须先把缺失值去掉,否则缺失值会排在最前面*/ run; proc sort data=a; /*set语句前必须要排序*/ by date; data b(drop=date); set a end=end; /*文件结束的临时变量,不包含在数据集中。前面的end是函数,后面的end是变量名*/ by date; retain start; /*没有retain语句则start的值为缺失*/ if _n_=1 then start=date; if end then do; /*也可以写if end then do last=date;*/ last=date; output; end; run;/*此时只有一个观测,start值为date最小值,last值为date最大值*/ data b(keep=date);/*只留date一个变???*/ informat date yymmdd10.; format date yymmdd10.; set b; do date=start to last; output; end; run; 如图,缺失的日期被补充完整,观测数从4056变为6167. 方法二: data a; set a nobs=nobs; call symput(temp,nobs);/*查找a的观测值个数,并赋值给宏变量temp*/ if date=. then delete;/*要排序之前必须先把缺失值去掉,否则缺失值会排在最前面*/ run; proc sort data=a; /*set语句前必须要排序*/ by date; data b(drop=date1); set a(rename=(date=date1)) end=end;/*文件结束的临时变量,不包含在数据集中*/ by date1; retain date; /*

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档