僕の頁 <SASと臨床試験と雑談と>

徒然なるままにSAS暮らし

----

スポンサーサイト  

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Posted on --/--/-- --. --:-- [edit]

CM: --
TB: --

0121

call execute  

call executeの使用例を一つ紹介します。
call executeは、プログラム自体をデータの文字列を用いて自動生成する機能です。
詳細についてはもう少し丁寧な説明が必要ですが、要するに
「自分でプログラムを書くよりもデータセットに格納されている文字列をそのまま
プログラムに使用したいときに使う機能」
と言えるかもしれません。処理の流れは以下になります。

DATAステップでcall execute用のステートメントを生成
⇒入力スタックに格納
⇒DATAステップの終了
⇒入力スタックに格納されているプログラムを実行

実際にコードを見てみましょう。以下では、call executeを用いて、
sashelp.classとsashelp.carsをproc printで出力するプログラムを
生成し、DATAステップ終了後に実行するプログラムです。

*** libnameとデータセット名 ;
data _DTLIST ;
length LIB DSNAME $8. ;
input LIB DSNAME $ ;
cards;
sashelp class
sashelp cars
;
run ;
*** call executeによる_DSLISTのデータセットを順番に出力するプログラム ;
data _null_ ;
set _DTLIST ;
*--- libname.datasetnameの文字列を作成 ;
call execute("proc print data="||compress(LIB)||"."||compress(DSNAME)||"; run ;") ;
run ;

ログ画面を見てみましょう。入力スタックにproc printの実行プログラムが
格納され、DATAステップ完了後に実行されていることが確認できます。
結果は上記データセットがアウトプット画面に出力されます。

call_execute.png
スポンサーサイト

Posted on 2014/01/21 Tue. 00:40 [edit]

CM: 0
TB: 0

プロフィール

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

訪れた人

▲Page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。