标题: 强迫 append 添加过程问题 [打印本页] 作者: shiyiming 时间: 2011-5-6 14:34 标题: 强迫 append 添加过程问题 代码:
[code:309w52a3]data a;
length x 3;
x='10~19';
run;
data b;
length x 3;
x=20;
run;
proc append base=a data=b force;
run;[/code:309w52a3]
最后结果:第一条观测变缺失值了。请教 b 如何能成功实现添加到 a 后边去?作者: shiyiming 时间: 2011-5-6 21:10 标题: Re: 强迫 append 添加过程问题 you have incompatible length definition and assigned value for variable X in the data step for data A. There is nothing to do with PROC APPEND.
Jingju作者: shiyiming 时间: 2011-5-6 22:10 标题: Re: 强迫 append 添加过程问题 [quote="jingju11":27l7c00k]you have incompatible length definition and assigned value for variable X in the data step for data A. There is nothing to do with PROC APPEND.
Jingju[/quote:27l7c00k]
再次谢谢了,现在已经成功了,把 a 和 b 中的 length x 3 分别改成了 format x $6. 及 format x $3.;
只是不清楚 force 既然在长度不同时,能起到强迫添加的作用,为啥不在字符型和数值型之间也来点这个,因为往往很多字符型数字变量,在后面的很多过程中要参与运算,这样一来不就方便许多了吗!作者: shiyiming 时间: 2011-5-11 14:01 标题: Re: 强迫 append 添加过程问题 你表A中定义的X是数值型,而给他的值却是字符型,并且这个字符值没办法自动转换为数值,sas自然会将其置为缺失。
force会在以下情况下发生强制追加,data中的变量 1.不在base中 2.和base中变量类型不一致 3.比base变量长度长
但是所有强制追加的基础都是base数据集。