SAS

parmステートメントと通常ステートメントの違い

GTLのグラフステートメントには末尾に”parm”がつくもの(以下parmステートメント)と、つかないステートメント(以下通常ステートメント)があります。出力結果としてはどちらも同じグラフを出力しますが、何が違うのでしょうか?

ステートメント比較

これだけだと何のステートメントのことを言っているのかわからないので、具体例を挙げてみます。

通常ステートメントparmステートメント
barchartbarchartparam
boxplotboxplotparm
contourplotparm
ellipseellipseparm
heatmapheatmapparm
histgramhistgramparm
linechartlineparm
mosaicplotparm
surfaceplotparm

同じ行のステートメントは名前は違いますがどちらも同じグラフを出力します。

読み込むデータが違う

2つのステートメントの違いは、プロットするデータを自動で算出するかどうかです。

例えばboxplotステートメントは生データを直接読み込み作図に必要な統計量(四分位数など)を自動で算出してくれます。通常のステートメントは統計オプションが設定できるので統計量の設定もテンプレート内で指定できます。

それに対しboxplotparmステートメントはFreqプロシジャやsummaryプロシジャなどで算出した統計量を読み込んで作図します。

なので読み込めるデータセットが違うということですね。

単純にプロットするだけであれば通常ステートメントのほうが統計量を算出する手間がない分簡単に作図することができます。

parmステートメントがおすすめ

機能面だけでみれば通常のステートメントのほうが自動で全部やってくれるので、通常のステートメントのほうが良いと思われるかもしれません。

しかしグラフテンプレートを使いまわして複数のグラフを作成したい場合ですと話が変わってきます。

作図する統計量をグラフごとに変更したい時は、通常のステートメントを使用した場合グラフテンプレートを修正するしかありません。

それに対しparmステートメントはデータセットを作成する段階で修正すればグラフテンプレートを修正する必要はありません。グラフテンプレートを修正する手間よりもデータセットを作成する手間のほうが通常少なく済むはずです。

また統計量の算出の仕様を細かく定義したい場合は通常ステートメントの統計オプションでは対応しきれないため、この場合はparmステートメントを使用することになります。

グラフテンプレートの汎用性を高めるという観点から、あらかじめ統計量を算出し、parmステートメントで作図するほうが望ましいでしょう。ただしヒストグラムはデータセット作成の煩雑さを考えると通常ステートメントの方が良いです。