我是SAS新手,在分隔数据文件的输出中使用put
,但有几个问题。
replace
?我试过了,代码出错了。非常感谢任何帮助。
谢谢!
data _null_;
set datain_20130108;
file 'C:\data\dataout_20130108.dlm';
put "!" id "|" var1 "|" var2 "|" var3 "|" var4 "|" var5 "|" var6 "~";
run;
答案 0 :(得分:2)
关于空格,请在变量名后使用+( - 1),如下所示。
put "!" id+(-1);
关于替换,我不明白你的问题。请参阅下面的替换文档的链接。 http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000131176.htm
答案 1 :(得分:2)
为什么不按正常方式放出分隔文件?你必须做一些愚蠢的事情来获得前导/尾随字符(我会非常好奇为什么它们存在)但它可能比手动分隔文件更简单。
data _null_;
set datain_20130108;
file 'C:\data\dataout_20130108.dlm' dlm='|';
idtemp= cats("!", id);
vartemp=cats(var6,'~');
put id $ var1 var2 var3 var4 var5 var6 $;
run;
REPLACE可能来自某些使用PROC EXPORT的指令。如果PROC EXPORT上没有REPLACE,则不会覆盖文件。 SAS数据步骤将替换文件而无需选项。
proc export data=datain_20130108 file='C:\data\dataout_20130108.dlm' dbms=dlm replace;
delimiter='|';
run;
然而,这不会在开头和结尾给你额外的字符,我强烈建议不要使用PROC EXPORT作为分隔文件,除非它只是一次性拍摄 - 它为你做出各种各样的决定你是最好自己制作(格式化等)并且真的不比PUT版本容易。
答案 2 :(得分:0)
如果这是你的意思,你将无法在PUT语句中使用REPLACE。您需要创建一个新变量(使用您需要的任何函数),然后在PUT语句中使用该变量。