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行目以降に最大長のデータが存在する場合、変数の長さを判定させるには、次のような方法で対応可能です。
|
|