IMPORTプロシジャでCSVファイルを読み込む際の文字切れを回避する
[OS] ALL
[リリース] SAS 8.2以降
[キーワード] IMPORT, CSV file, length, GUESSINGROWS
[質問]
IMPORTプロシジャでCSVファイルを読み込む際に、文字変数の値が切れてしまうことがあります。
[回答]
直接変数の長さを指定することはできませんが、最新のSAS9ではIMPORTプロシジャで新たに追加されたGUESSINGROWS=オプションで対応できます。 次の例では、GUESSINGROWS=オプションを使用して先頭から200行までのデータを事前に読み込み、データの判定を行なわせています。 例:GUESSINGROWS=オプションで先頭から200行を読み込む PROC IMPORT OUT= WORK.test DATAFILE="C:¥temp¥test.csv" DBMS=CSV REPLACE; GETNAMES=YES; DATAROW=2; GUESSINGROWS=200; /* 先頭から 200行を読み込む */ RUN; なお、SAS 8のIMPORTプロシジャは、標準ではCSVファイルの先頭の20行を走査して、変数の長さが決定されます。 先頭の21行目以降に最大長のデータが存在する場合、変数の長さを判定させるには、次のような方法で対応可能です。
|