読者です 読者をやめる 読者になる 読者になる

The Nameless City

何故か製薬やSAS関連のブログ、の予定。

XPORTファイルとは何ぞやというお話。

何だか騒がしくなってきた所ですが(超白々しい)、最近話題のSAS transport fileというのを簡単にご説明させて頂きます。

マニュアル(日本語)

SAS 9.4 ファイルの移動とアクセス(PDF)をご参照下さい。
もうそこに書いてる事です。


全ての人に言います。
100回めぐらいですが。
マニュアル嫁。

要諦

プラットフォーム間の移行と、文字エンコーディングの変更は別。

XPORTファイルを送る場合には、送り先と受け先の文字エンコーディングが一致していることが前提なんです。
大事な事なので二回言いますが、XPORTファイルには文字エンコーディングの情報は入ってません。
XPORTファイルは、しかし、それ以外のケース、例えばOSの違いは吸収します。bit数の違いは、数値変数に設定した長さでのIBM形式であると定義されているので差になりません。


で。
そもそもで言うと、SAS XPORT形式は、ASCII以外の文字列を特にサポートはしてないのです。
それどころか、もっと低レベルな範囲でのサポートにとどまります。


蛇足ですが、移送形式なので、プラットフォームが違っても同一の形式になります。
プラットフォームに依存する問題はこの形式では発生しません。

XPORT形式

実はV8のXPORT形式というのも出てきており、V5形式の拡張ながらちょっとはマシになってます。
けど、FDAが言っているのは、SAS V5 transport file formatですので、それの制約がとっても重くのしかかってます。のしかかりすぎです。二十年前に辞めたかったような制約がそのまんま課せられてます。


データセット名・変数名の最大長は8バイトとか、ラベルも40バイトとか、フォーマット定義名も8文字以下とか(文字フォーマットの場合には$も入るので7文字まで)、かなりの制約があります。ちなみにカタログファイルは転送出来ないので、ユーザ定義フォーマットとか禁止。


つまりは、SAS V6ぐらいでも使えるようなデータの形式であるという事です。


ちなみに、文字エンコーディングはサポートされてはないのですが、同じ文字エンコーディングである場合には同じ文字エンコーディングで出力されるし読めるという感じです。

注意

今、SASはこのTransport file formatに類似のV8フォーマットを持ってます。
そちらへの変換SASマクロは提示されてますが、XPORTエンジンはV5のみサポートしていますし、XPORTのファイルというとV5制限がつくことと想定して下さい。
文字化けだーとか言う前に、文字エンコーディングを気にして下さい。
お願いします。