DOループのネストレベル

[OS]
[リリース] 9.2
[キーワード] Do、ネストレベル

[質問]

DATAステップにて、DOループのネストを多用している際、ループのネスト数の判別を行うことはできますか?

[回答]

SAS 9.2より、DATAステートメントに/nestingオプションを付加することにより、ログにDOループのネストレベルが出力されるようになりました。これにより、DOループのコーディングミスが発見しやすくなります。

DATA _NULL_ /NESTING;
	DO i=1 TO 10;
		DO j=1 TO 10;
			DO k=1 TO 10;
			END;
		END;
	END;
RUN;

ログ例

1    DATA _NULL_ /NESTING;
2        DO i=1 TO 10;
            -
            719
NOTE 719-185: *** DO begin level 1 ***.

3            DO j=1 TO 10;
                -
                719
NOTE 719-185: *** DO begin level 2 ***.

4                DO k=1 TO 10;
                    -
                    719
5                END;
                 ---
                 720
NOTE 719-185: *** DO begin level 3 ***.

NOTE 720-185: *** DO end level 3 ***.

6            END;
             ---
             720
NOTE 720-185: *** DO end level 2 ***.

7        END;
         ---
         720
NOTE 720-185: *** DO end level 1 ***.

8    RUN;