前のページ|次のページ

CALL VNEXTルーチン

DATAステップで使用される変数の名前、種類および長さを返します。

カテゴリ: 変数情報

構文

必須引数

variable-name

CALL VNEXTルーチンで更新される文字変数です。次のルールが適用されます。

  • variable-nameの入力値が空白の場合、variable-nameで返される値はDATAステップの変数のリストにある最初の変数の名前になります。
  • CALL VNEXTルーチンをDATAステップで初めて実行する場合、variable-nameで返される値はDATAステップの変数のリストにある最初の変数の名前になります。
前述の条件のどちらも存在しない場合、variable-nameの入力値は無視されます。CALL VNEXTルーチンを実行するたびにvariable-nameで返される値は、リストの次の変数の名前になります。
DATAステップのすべての変数の名前が返されると、variable-nameで返される値は空白になります。

オプション引数

variable-type

入力値が無視される文字変数です。返される値は"N"または"C"です。次のルールが適用されます。

  • variable-nameで返される値が数値変数の名前の場合、variable-typeで返される値は"N"です。
  • variable-nameで返される値が文字変数の名前の場合、variable-typeで返される値は"C"です。
  • variable-nameで返される値が空白の場合、variable-typeで返される値も空白です。

variable-length

数値変数です。variable-lengthの入力値は無視されます。

返される値は、variable-nameで名前が返される変数の長さです。variable-nameで返される値が空白の場合、variable-lengthで返される値はゼロです。

詳細

CALL VNEXTルーチンで返される変数名には、_N_や_ERROR_などの自動変数があります。DATAステップにBYステートメントが含まれている場合、CALL VNEXTで返される名前にはFIRST.variableとLAST.variableの名前が含まれます。CALL VNEXTは、CALL VNEXTへの引数として使用される変数の名前も返します。
注: CALL VNEXTで返される変数名の順序は、使用しているSASのリリースと動作環境によって異なる場合があります。

例: CALL VNEXTルーチンを使用する

CALL VNEXTルーチンを使用した結果の例を次に示します。
data test; 
   x=1;
   y='abc';
   z=.;
   length z 5;
run;
data attributes;
   set test;
   by x;
   input a b $ c;
   length name $32 type $3;
   name=' ';
   length=666;
   do i=1 to 99 until(name=' ');
      call vnext(name, type, length);
      put i= name @40 type= length=;
   end;
   this_is_a_long_variable_name=0;
   datalines;
1 q 3
;
SASログの部分出力結果を次に示します。
i=1 x type=N length=8 i=2 y type=C length=3 i=3 z type=N length=5 i=4 FIRST.x type=N length=8 i=5 LAST.x type=N length=8 i=6 a type=N length=8 i=7 b type=C length=8 i=8 c type=N length=8 i=9 name type=C length=32 i=10 type type=C length=3 i=11 length type=N length=8 i=12 i type=N length=8 i=13 this_is_a_long_variable_name type=N length=8 i=14 _ERROR_ type=N length=8 i=15 _N_ type=N length=8 i=16 type= length=0
前のページ|次のページ|ページの先頭へ