外部ファイルをインポートする際の文字データの切り捨てを回避する

[OS] ALL
[リリース] SAS System 8以降
[キーワード] BASE, IMPORT, DELIMITER, TEXT FILE, CSV, EFI

[質問]

IMPORTウィザード、IMPORTプロシジャ、および外部ファイルインターフェイス(EFI)でデリミタファイルを入力するとき、文字データが切り捨てられる場合があります。
これを回避する方法はありますか。

[回答]

SAS System 8以降のIMPORTウィザード、IMPORTプロシジャ、およびEFIは、デフォルトで最初の20件を検索して変数の属性を決定します。
この20レコードのデータより長いデータがある場合には、文字データが切り捨てられます。

属性を決定するために検索するデータの件数は、下記の手順で変更できます。

  1. SASのコマンドバーから、REGEDITコマンドを発行します。
  2. レジストリエディタウィンドウが表示されるので、PRODUCTSアイコンをダブルクリックします。
  3. BASEアイコンをダブルクリックします。
  4. EFIアイコンをダブルクリックします。
  5. 右側の「'EFI'のコンテンツ」ウィンドウに、EFIのオプションが表示されます。
  6. "GuessingRows"の項目をダブルクリックします。
  7. 「符号つき整数値の編集」ウィンドウが表示されるので、元の「20」を削除して新しい値を入力し、OKボタンをクリックします。
  8. 「レジストリエディタ」ウィンドウを閉じます。
  9. IMPORTウィザード、IMPORTプロシジャ、またはEFIを実行します。

GuessingRowsの新しい値は、次に変更するまで保存されます。

また、GuessingRowsの値を変更する以外に、IMPORTウィザード、IMPORTプロシジャ、およびEFIが生成したDATAステップをエディタからリコールして、INFORMATおよびFORMATステートメントを手入力し、再度サブミットする方法があります。