SAS维基百科 >>所属分类 >> SAS系统    使用指南    程序导航    BASE模块    BASE程序    A   

APPEND

标签: 暂无标签

顶[1] 发表评论(0) 编辑词条


目录

语法格式编辑本段回目录

PROC APPEND BASE=<libref.>SAS-data-set <DATA=<libref.>SAS-data-set> <FORCE> ;

说明:








proc append将data=数据集追加到base=过程中;data=也可以使用new=,两者等价,如果缺省,则取最近创建的数据集;base=也可以使用out=,两者等价,该选项不允许缺省,但是数据集可以不存在,这样就创建一个以该数据集命名的新数据集,那么这个追加过程就变成了复制过程。*使用new=和out=时,Editor窗口不会自动改变颜色显示为关键字,可能是SAS并不提倡这样使用。force 这里又碰到force 

运行机制编辑本段回目录

proc append先读取base=与data=选项中的各数据集的描述部分信息,看看各自变量的情况,然后才执行后面的过程。








·变量不一致时如果data=数据集中的变量base=数据集中没有,则整个过程不会被执行;如果有force选项则强制执行,并且这些在base=数据集中没有的变量会被删除,LOG窗口中会有提示删除了哪些变量;如果base=数据集中的变量data=数据集中没有,那追加之后这些变量值被置为缺失值;·属性不一致时如果两数据集相同的变量类型不一致时,则整个过程不会被执行,SAS会报错;如果有force选项则强制执行,以base=数据集的类型为准,data=中相应变量值被置为缺失值;如果两数据集相同的变量长度不一致时,base=数据集中的变量长度大于data=数据集中的变量,则正常执行;如果长度小于,则过程不会被执行,除非有force选项,则将多余的字符截断;两数据集相同的变量其他属性不一致,如输入输出格式、标签等都以base=数据集中的为准。

应用举例编辑本段回目录

例子是介绍Append过程的一个选项,force。当data数据集里的变量,在base数据集里却没有,或者data数据集里的变量与base数据集里的同一变量的格式不一致时,这里append过程不会执行。如果要强制执行,则加入force选项,格式和变量个数都以base数据集为准。
data weather;
   input date mmddyy8. temp sunhrs;
   cards;
01-01-90 35 9.3
01-02-90 34 9.33
01-03-90 37 9.35
01-04-90 38 9.39
;
proc print data= weather;
   format date date7.;
   title 'Weather Information Before Appending';
run;
data daily;
   input date mmddyy8. temp sunhrs precip;
   cards;
01-05-90 35 9.40 1.1
;
run;
proc print data=daily;
   format date date7.;
   title 'New Weather Information Including PRECIP';
run;
proc append base= weather data=daily force;
run;
proc print data= weather;
   format date date7.;
   title 'Weather Information After Appending';
run;
 
使用append过程步的小技巧:
1 为了减少出现错误或减少warning,尽量少用force选项,而是尽量保证两个数据集有完全相同的变量和格式。
2 data= 这个选项最好明确给定。如果不明确指定,则系统将赋为最新创建的数据集
3 append最好只处理work目录下的数据集,也就是尽量不要用于处理永久性的数据集
4 为了增加append过程的效率,最好将较大数据量的数据集作为base。
参考文献:
  
例子
data master;
do i = 1 to 5;
    j = 10;
    output;
 end;

data add;
do i = 15 to 20;
    j = 200;
    output;
end;
proc append base=master  data=add;
run;

proc print data=master;
run;

参考资料
[1].  邓浩的SAS Macro宏学习   http://blog.sina.com.cn/s/blog_5d3b177c0100b24h.html
[2].  When PROC APPEND May Make More Sense Than the DATA STEP   http://www2.sas.com/proceedings/forum2008/085-2008.pdf

附件列表


→如果您认为本词条还有待完善,请 编辑词条

上一篇按模块分组 下一篇Goodnight

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
1

收藏到:  

词条信息

sxlion
sxlion
超级管理员
最近编辑者 发短消息   

相关词条