SAS忘備録で、データの標準化を行うSTDIZEプロシジャを利用して、欠損値を一気に指定の値に置換する方法が紹介されてました。
http://sas-boubi.blogspot.jp/2014/03/blog-post_20.html
これを読んだ時、あ、じゃあ同じことが call STDIZEルーチンでもできるんじゃない!
一回プロシジャステップ挟まなくても、データステップ中でできれば、そっちの方がいいな!と思って、挑戦したのですが、STDIZEプロシジャのreponlyに対応する記述法がわかんねぇ。
ヘルプにもそれらしきものは載ってないし、無理なの?と思って、放置していました。
最近、SAS Support Commnity(https://communities.sas.com/community/support-communities)をふらふらしてたら、いくつかヒントらしきものを見つけました。
それに従ってやってみたのが、以下のコードです。
まずはサンプルデータ
data DT1;
input A B C;
cards;
1 . 2
3 4 .
. . 5
run;
そして処理コード
data DT2;
set DT1;
call stdize('missing=',0,'none',of _all_);
run;
結果
おぉ!できたできた!
おーマジですか!!
返信削除’NONE’はマニュアルに載ってないですよね!
わたしもこの方法さんざん調べたんですが分からなくて、もういいやって諦めてたので超スッキリしました。
勉強になりました!
マジです!
返信削除のってないです!なんで載ってないのか、使っている外人は何故しっているのかって感じですね。
発端はmatsuさんなので、こちらこそ勉強させていただきました。