SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 776|回复: 3
打印 上一主题 下一主题

强迫 append 添加过程问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-5-6 14:34:21 | 只看该作者

强迫 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 后边去?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-5-6 21:10:02 | 只看该作者

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
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-5-6 22:10:20 | 只看该作者

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 既然在长度不同时,能起到强迫添加的作用,为啥不在字符型和数值型之间也来点这个,因为往往很多字符型数字变量,在后面的很多过程中要参与运算,这样一来不就方便许多了吗!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-5-11 14:01:08 | 只看该作者

Re: 强迫 append 添加过程问题

你表A中定义的X是数值型,而给他的值却是字符型,并且这个字符值没办法自动转换为数值,sas自然会将其置为缺失。
force会在以下情况下发生强制追加,data中的变量  1.不在base中  2.和base中变量类型不一致 3.比base变量长度长
但是所有强制追加的基础都是base数据集。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 09:19 , Processed in 0.091958 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表