CSV形式(コンマ区切り形式)外部ファイルの読み込み
http://www.sas.com/offices/asiapacific/japan/service/technical/faq/list/body/ba041.html

[質問]

CSV形式(コンマ区切り形式)の外部ファイルをSASで読み込み、SASデータセットに変換しようと思います。次のように、コンマが連続する様な内容の外部ファイルを読み込むときに、コンマを飛ばして値を読み込んでしまいます。(省略)

csv.txt ファイル
1, 2, 3
4, , 5
6, 7, 8

(省略)

[回答]

SAS 6.07以降、INFILEステートメントにdsdオプションを付加して下さい。

  infile 'csv.txt' dlm=',' dsd;

なお、dsdオプションを指定した場合には、コンマがデリミタとみなされますので、dlm=' ,'の指定は省略できます


DSD - It has three functions when reading delimited files. The first function is to strip off any quotes that surround values in the text file. The second function deals with missing values. When SAS encounters consecutive delimiters in a file, the default action is to treat the delimiters as one unit. If a file has consecutive delimiters, it’s usually because there are missing values between them. DSD tells SAS to treat consecutive delimiters separately; therefore, a value that is missing between consecutive delimiters will be read as a missing value when DSD is specified. The third function assumes the delimiter is a comma. If DSD is specified and the delimiter is a comma, the DLM= option is not necessary. If another delimiter is used, the DLM= option must be used as well. This option became available in SAS 6.07 and is documented in "SAS Technical Report P-222". In Version 7 and beyond, DSD is documented in "SAS Language Reference: Dictionary".
http://support.sas.com/techsup/technote/ts673.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-19 (金) 00:49:49 (4659d)