SAS综合题1-15探析.doc

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS金融数据处理综合练习题 创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。分别用DATA步,DATA步数组语句和IML过程实现。 D data p1(drop=i); retain x1-x10000 0; do i=1 to 100; output; end; run; data步数组: 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数据集。 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,并填充开始到结束日之间的所有日期值。 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; /*没有retain语句则date的值为缺失*/ if _n_=1 then date=date1; /*查找第一个观测值*/ else delete; run; data b(keep=date); informat date yymmdd10.; format date yymmdd10.; set b; do n=1 to

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档