PROC_APPEND
SAS 中的INSERT语句:PROC APPEND
(1)语法格式
PROC APPEND BASE=SAS-data-set SAS-data-set> ;
说明:
proc append将data=数据集追加到base=过程中;
data=也可以使用new=,两者等价,如果缺省,则取最近创建的数据集;
base=也可以使用out=,两者等价,该选项不允许缺省,但是数据集可以不存在,这样就创建一个以该数据集命名的新数据集,那么这个追加过程就变成了复制过程。
*使用new=和out=时,Editor窗口不会自动改变颜色显示为关键字,可能是SAS并不提倡这样使用。
force 这里又碰到force
(2)运行机制
proc append先读取base=与data=选项中的各数据集的描述部分信息,看看各自变量的情况,然后才执行后面的过程。
·变量不一致时
如果data=数据集中的变量base=数据集中没有,则整个过程不会被执行;如果有force选项则强制执行,并且这些在base=数据集中没有的变量会被删除,LOG窗口中会有提示删除了哪些变量;
如果base=数据集中的变量data=数据集中没有,那追加之后这些变量值被置为缺失值;
·属性不一致时
如果两数据集相同的变量类型不一致时,则整个过程不会被执行,SAS会报错;如果有force选项则强制执行,以base=数据集的类型为准,data=中相应变量值被置为缺失值;
如果两数据集相同的变量长度不一致时,base=数据集中的变量长度大于data=数据集中的变量,则正常执行;如果长度小于,则过程不会被执行,除非有force选项,则将多余的字符截断;
两数据集相同的变量其他属性不一致,如输入输出格式、标签等都以base=数据集中的为准。
(1)语法格式
PROC APPEND BASE=SAS-data-set SAS-data-set> ;
说明:
proc append将data=数据集追加到base=过程中;
data=也可以使用new=,两者等价,如果缺省,则取最近创建的数据集;
base=也可以使用out=,两者等价,该选项不允许缺省,但是数据集可以不存在,这样就创建一个以该数据集命名的新数据集,那么这个追加过程就变成了复制过程。
*使用new=和out=时,Editor窗口不会自动改变颜色显示为关键字,可能是SAS并不提倡这样使用。
force 这里又碰到force
(2)运行机制
proc append先读取base=与data=选项中的各数据集的描述部分信息,看看各自变量的情况,然后才执行后面的过程。
·变量不一致时
如果data=数据集中的变量base=数据集中没有,则整个过程不会被执行;如果有force选项则强制执行,并且这些在base=数据集中没有的变量会被删除,LOG窗口中会有提示删除了哪些变量;
如果base=数据集中的变量data=数据集中没有,那追加之后这些变量值被置为缺失值;
·属性不一致时
如果两数据集相同的变量类型不一致时,则整个过程不会被执行,SAS会报错;如果有force选项则强制执行,以base=数据集的类型为准,data=中相应变量值被置为缺失值;
如果两数据集相同的变量长度不一致时,base=数据集中的变量长度大于data=数据集中的变量,则正常执行;如果长度小于,则过程不会被执行,除非有force选项,则将多余的字符截断;
两数据集相同的变量其他属性不一致,如输入输出格式、标签等都以base=数据集中的为准。