3

私はSASを初めて使用putし、区切りデータファイルの出力で使用していますが、いくつか質問があります。

  1. 出力では、区切り文字とデータの間にスペースが生成されます。このスペースをなくすことはできますか?
  2. 私のコードでは、どのように組み込むのreplaceですか? 試してみたところ、コードエラーが発生しました。

どんな助けでも大歓迎です。

ありがとう!

data _null_; 
set datain_20130108;
file 'C:\data\dataout_20130108.dlm';
put "!" id "|" var1 "|" var2 "|" var3 "|" var4 "|" var5 "|" var6 "~";
run;
4

3 に答える 3

2

スペースについては、以下に示すように、変数名の後に +(-1) を使用します。

put "!" id+(-1);

交換に関しては、あなたの質問がわかりません。以下のドキュメントを置き換えるリンクを参照してください。 http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000131176.htm

于 2013-01-09T14:04:55.600 に答える
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;

ただし、最初と最後に余分な文字が表示されるわけではありません。1 回限りのショットでない限り、区切りファイルに PROC EXPORT を使用しないことを強くお勧めします。実際には、PUT バージョンよりもはるかに簡単ではありません。

于 2013-01-09T15:19:27.173 に答える
0

それが意図したものである場合、PUT ステートメントで REPLACE を使用することはできません。(必要な関数を使用して) 新しい変数を作成し、その変数を PUT ステートメントで使用する必要があります。

于 2013-01-09T14:20:25.113 に答える