動かして覚え...なくてもいいかもしれない infileステートメント expandtabs オプション - SAS
infile ステートメントの中に expandtabs オプションというのを見つけました。名前からして、もしかしたら dlm="09"x の別名か!? これでタブ区切りのファイルを読み込むときに、タブ "09"x なんていう知らないと分からないコードを書かなくて済む! と思ったのですが、使ってみたら思ってた挙動と違っていました。
下記のようなコードでは思ってたとおりに動作します。
テストコード
filename IN "/folders/myfolders/test.txt" ; data TEST ; infile IN expandtabs ; input var1 : $16. var2 : $16. ; run ; proc print ; run ;
テストデータ1
※空白はタブです。
1234567890 1234 1111 2222 A B
テスト結果1
OBS var1 var2 1 1234567890 1234 2 1111 2222 3 A B
expandtabsオプションは、タブを空白に置き換えるらしく、半角スペースを値として格納している場合には上手く読み込みません。
テストデータ2
※11と11の間に半角スペースを入れました。
1234567890 1234 11 11 2222 A B
テスト結果2
OBS var1 var2 1 1234567890 1234 2 11 11 3 A B
タブではなく、半角スペース区切り(dlm=を指定しないときのデフォルト値)で読み込まれてしまいます。
調べてはみましたが、使いドコロが(個人的には)なさそうなオプションでした。
コメント
コメントを投稿