入力データレコードの入力値を走査し、対応するSAS変数に割り当てます。
該当要素: | DATAステップ |
カテゴリ: | ファイル操作 |
種類: | 実行 |
入力バッファ内の指定した行または列に入力ポインタを移動させます。
参照項目 | カラムポインタコントロール および行ポインタコントロール |
例 | ブランクが埋め込まれた文字データの読み込み |
読み込む値を割り当てる変数を1つ指定します。
変数の値を数値ではなく文字値として格納するように指定します。
ヒント | この変数が文字変数と事前に定義されている場合、$を指定する必要はありません。 |
例 | 単純リスト入力を使用した位置が揃っていないデータの読み込み |
文字値に1つ以上のブランクが含まれている場合に指定します。このフォーマット修飾子を指定すると、次の非ブランク列から値を、連続する2つのブランク、変数に定義された長さ、入力行の最後のいずれかにポインタが到達するまで読み込みます。
制限事項 | & 修飾子は適用対象となる変数名と$記号の後ろに指定する必要があります。 |
ヒント | & 修飾子の後ろに入力形式を指定しても、連続する2つのブランクというフォーマット修飾子の終了条件は変わりません。 |
参照項目 | 修飾リスト入力 |
例 | ブランクが埋め込まれた文字データの読み込み |
INPUTステートメントで変数の値の読み込みに使用する入力形式を指定できます。文字変数の場合、このフォーマット修飾子を指定すると、次の非ブランクの列から値を、次のブランクの列、長さを指定した変数、データ行の最後のいずれかにポインタが到達するまで読み込みます。数値変数の場合、このフォーマット修飾子を指定すると、次の非ブランク列の列から値を、次のブランクの列、データ行の最後のいずれかにポインタが到達するまで読み込みます。
ヒント | 変数の長さが定義されていない場合、入力形式の長さに従って値を読み込んでから格納されます。 |
ポインタは、次のブランク列に到達するまで読み込みを継続します。ただし、フィールドの長さが入力形式の長さよりも長い場合、入力形式の長さまで切り捨てられます。 | |
参照項目 | 修飾リスト入力 |
例 | 入力形式を使用した位置が揃っていないデータの読み込み |
一重引用符、二重引用符、区切り文字を特別な方法で扱うように指示します。このフォーマット修飾子を指定すると、区切り文字ではなく文字として、引用符で囲まれた文字値内の区切り文字を読み込みます。また、変数に値を書き込む際、この引用符を保持します。
制限事項 | INFILEステートメントにDSDオプションを使用する必要があります。使用しない場合、INPUTステートメントはこのオプションは無視します。 |
参照項目 | 修飾リスト入力 |
例 | 修飾リスト入力を使用した区切られたデータの読み込み |
変数の値の読み込みに使用する入力形式を指定します。
ヒント | 実際の入力値に含まれる小数点は、数値入力形式による小数点の指定より優先されます。 |
参照項目 | SAS出力形式と入力形式: リファレンスのSAS入力形式 |
例 | 入力形式を使用した位置が揃っていないデータの読み込み |
次のINPUTステートメントの実行時に使用できるように入力行を保持します。DATAステップの同一の反復内で保持されます。このラインホールド指定子は、後置@と呼ばれます。
制限事項 | 後置@は、INPUTステートメントの最後の項目として指定する必要があります。 |
ヒント | 後置@を指定すると、次のINPUTステートメントによって、現在の入力レコードの開放や入力バッファへの次のレコードの読み込みが自動的に実行されなくなります。後置@は、同じレコードを何度も読み込む必要がある場合に便利です。 |
参照項目 | ラインホールド指定子の使用 |
次のINPUTステートメントの実行時に使用できるように入力行を保持します。DATAステップの反復間を通して保持されます。このラインホールド指定子は、後置@@と呼ばれます。
制限事項 | 後置@@は、INPUTステートメントの最後の項目として指定する必要があります。 |
ヒント | 後置@@は、入力行に複数のオブザベーションの値が含まれる場合に便利です。 |
参照項目 | ラインホールド指定子の使用 |
フォーマット修飾子
|
用途
|
---|---|
&
|
ブランクを含む文字値を読み込みます。
|
:
|
入力形式による追加指示が必要ですが、列位置が不揃いのデータ値を読み込みます。1
|
~
|
引用符で囲んだ文字値内の区切り文字を通常の文字として読み込みます。また、引用符は保持されます。
|
1フォーマット入力とポインタコントロールを使用して、列位置が揃っているデータ値を読み込みます。 |
data jansales; input item : $10. amount comma5.; datalines; trucks 1,382 vans 1,235 sedans 2,391 ;
input item $10. +1 amount comma5.;
----+----1----+----2 trucks 1,382 vans 1,235 sedans 2,391
data scores; input name $ score1 score2 score3 team $; datalines; Joe 11 32 76 red Mitchel 13 29 82 blue Susan 14 27 74 green ;
input name $ score1 score2 score3;
data list;
infile file-specification;
input name $ & score;
run;
----+----1----+----2----+----3----+ Joseph 11 Joergensen red Mitchel 13 Mc Allister blue Su Ellen 14 Fischer-Simon green
input name $ & +3 lastname & $15. team $;
data jansales; input item : $10. amount; datalines; trucks 1382 vans 1235 sedans 2391 ;
data scores2; length Team $ 14; infile datalines delimiter=','; input Name $ Score1-Score3 Team $ Final_Date:MMDDYY10.; format final_date weekdate17.; datalines; Joe,11,32,76,Red Racers,2/3/2007 Mitchell,13,29,82,Blue Bunnies,4/5/2007 Susan,14,27,74,Green Gazelles,11/13/2007 ; proc print data=scores2; var Name Team Score1-Score3 Final_Date; title 'Soccer Player Scores'; run;
data scores; infile datalines dsd; input Name : $9. Score1-Score3 Team ~ $25. Div $; datalines; Joseph,11,32,76,"Red Racers, Washington",AAA Mitchel,13,29,82,"Blue Bunnies, Richmond",AAA Sue Ellen,14,27,74,"Green Gazelles, Atlanta",AA ;
proc print; run;実行後に作成されたSCORESデータセットをPROC PRINTで出力した結果を次に示します。TEAMの値には引用符が含まれています。