いつも大変お世話になっております。
SAS university editionのサービス終了に伴い、SAS ondemandへ移行したいと考えております。
動作確認のために、SAS university editionで作成したSASデータセット(sas7bdat)をSAS ondemandへアップロードし、
SAS university editionと全く同じプログラムを走らせますと、proc psmatchの際に、
” ERROR: 無効な文字がデータに表示されました。
ERROR: テキストデータの処理中に、エラーが発生しました。”
というエラーが発生します。
SAS university editionでは表示出来て、SAS ondemandでは表示できない文字があるのかと考え、
format, informatを全て消去し、Str型の変数を全て削除し同じプログラムを実行しましたが、それでもやはり同じエラーが出ます。
そのため解決方法が分からずこちらで質問させていただきました。
そもそもSAS university editionもSAS ondemandもセッションエンコーディングはUTF-8であると認識しておりますので、
University editionでエラーが出ず、ondemandで上記のエラーが出る、というのはどういった原因によるのでしょうか。
宜しくお願い致します。
おそらくバージョンの違いによるものだと思いますが、結果の一部で文字切れに起因した文字化けが発生しており、SAS Studioの使用しているODS HTML5ではエラーとなり表示ができていないようです。ご不便をおかけし恐れ入りますがひとまず以下のように結果を英語表示に変更して回避できるかお試しください。
options locale=en_US;
日本語に戻す場合は以下で可能です。
options locale=ja_JP;
おそらくバージョンの違いによるものだと思いますが、結果の一部で文字切れに起因した文字化けが発生しており、SAS Studioの使用しているODS HTML5ではエラーとなり表示ができていないようです。ご不便をおかけし恐れ入りますがひとまず以下のように結果を英語表示に変更して回避できるかお試しください。
options locale=en_US;
日本語に戻す場合は以下で可能です。
options locale=ja_JP;
早速のご返事ありがとうございます。
ご指示頂いた options locale=en_US;
をproc psmatchの直前に入れ、同時に走らせることでエラーがなく動作致しました。
1. 変数名は半角英字で、フォーマット名も半角英字(全角文字は使用しておりません)にも関わらず、
しかもSAS university editionでは問題なく動作して、Ondemandでは動作しない、というのはどういった点が原因なのでしょうか。
2. SAS university editionで作成したsas7bdatファイルをOndemand用に何らかの方法で作成しなおす必要があるのでしょうか。
3. options locale=en_US;を一緒に走らせないとエラーが出てしまうのですが、
結果表記を永続的に英語に変更する方法はあるのでしょうか。
もしご存知でしたら、上記について教えていただけますと幸いです。
宜しくお願い致します。
今回のエラーはデータ依存ではなく、内容としては以下が近いと思います。SAS University EditionとSAS OnDemand for AcademicsにおけるSASのバージョンの違いで追加された部分に起因しているように見えます。
プロシジャの結果部分ですので、修正されるまでは英語で実行するかエラーの原因になってるテーブルを非表示にするのがいいと思います。
ods exclude DataInfo;
HTML5出力を閉じてHTML4ファイルをホームディレクトリに作成することもできます。この場合文字化け部分はそのまま残ります。xxxの箇所はユーザ固有の値になります。
ods _all_ close;
ods html path="/home/xxx" file="output.html";
ありがとうございます。
問題が解決されるまではそのように対応させて頂こうと思います。
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!