2016年11月28日月曜日

Excel Page Setupの修正案

機能追加を検討しています。

  • セルの値が値か数式かによってフォントの色を変更する
  • 中味がない空のシートを削除する
  • 行の高さを調整する
  • シート全体のフォントを設定する
これは最近読んだ本の中に書かれていたことです。実装して良いのか?

setup.sh -consoleでエラー

エラーのメモです。久しぶりにUNIX上で、SAS9.3のインストールを行っています。
デポの作成を、GUI無しでコンソールモードでやろうとしたら、正しく動かなかった。インストールのログをチェックすると、Disk2のメディア交換のところで、エラー終了している。

setup.sh -console

どうにもこうにも正しく動かないかった。結局、Windows7 のPC上でデポを作成、UNIX側に転送してDepotCheckerで検証してエラーを回避しました。いつもの手順が手堅い。下は参考記事です。

http://support.sas.com/kb/38/258.html

2016年11月16日水曜日

ホスト名の最後にドットをつけてはいけません。

SASのネタというよりかは、ホスト名の命名のメモです。
エラーの問い合わせあって、よく見るとホスト名の後ろにドットが付いています。
開発者はPINGが通るから大丈夫ということでしたが、これがエラーの原因でした。
RFC952のルールから外れるので、この命名だと認識されないケースあります。
参考記事はコチラです。

最初にログを見たときに指摘したものの、「大丈夫!」という意見で遠回りしてしまった。

追記します。
何故か、ホスト名の最後のドットがダメってどこに書いてあるのかと質問受けました。RRC952の原文を見ると、ホスト名の定義は以下のようになっています。

 <hname> ::= <name>*["."<name>]
 <name>>  ::= <let>[*[<let-or-digit-or-hyphen>]<let-or-digit>]

これみると、アンダースコアはNGなのね。

2016年11月13日日曜日

Enterprise GuideのMap Chartの例

SAS Enterprise Guideでマップチャートを使った例をメモしておきます。資料を探すと海外のネタがいくつか転がっていますが、今回は埼玉県のマップを描きます。さて、ここで迷ったのが日本の地図のデータをどこから取ってくるかです。東京都のデータなら、NLSのライブラリMAPSの下にあります。東京以外のデータも描きたいということで、別なところから地図のデータを探して取ってきます。地図データの検索キーワードは"地図 シェープファイル”で手繰ります。以下、マップを描く手順です。
  1. 全国市区町村界データをesriジャパンから取ってくる
  2. PROC MAPIMPORTでシェイプを読み込んでデータセットにする
  3. データセットから埼玉県だけを抽出
  4. エリア毎の濃淡をつけるために乱数で変数を作る
  5. マップチャートで描く
出力はこんなイメージです。



最初にesriジャパンのWebサイトを検索して、全国市区町村界データをダウンロードします。ダウンロードしたら、ZIPファイルを展開してc:\tempの下に置きます。

次にコードタスクで、ダウンロードしたシェイプのデータを読み取ります。埼玉県だけの情報に絞って、乱数で適当な変数を作ります。この変数はマップチャートのタスクで集計します。

データセット選択して、タスク>グラフ>マップチャートを選択します。2D塗り分け地図を選びます。因みに、シェープデータだけで「空白の地図を作成」することができます。シェープデータの中味を確認するときに使ってください。


データの役割を下の図のように設定します。ID変数役割で間違った変数を指定すると、思わぬ方向に線が引かれることがあります。そのときには、ID変数を疑ってください。


変数RANDOMを集計するので、「グラフに使用する統計量」に合計を指定します。それと凡例の箇所もチェックしてください。


プロセスフローは以下のようになるはずです。

シェイプファイルですが、様々なフォーマットで色んなところから提供されています。メッシュ上に区切った形状のものや、海岸線、避難地域など国交省のネタがあることを知りました。シェイプファイルについて、私が参照したリンクはコチラです。

2016年10月20日木曜日

Object Spawnerのログが英語で出力される

またレアな事象にぶつかったのでメモしておきます。Object Spawnerのログが何故か英語で出力される問題にぶつかりました。OSのロケールは日本語にしているにも関わらずです。
Object Spawnerの設定に言語やエンコーディングは無かったので、1時間ほど調べながら悩みました。

応えは、Local System Accountの言語が英語(EN)になっていたためでした。構築した環境はSAS9.4、Windows Server 2012で、AWS上に構築しています。土台が英語環境だったのであとから、日本語に切り替えたのですがこれが原因でした。

調べたのはレジストリエディタで、Local System Accountのユーザ環境を手繰って、Control Panel, Languagesのエントリの下を見て言語が英語になっていることを確かめました。また、Objspawn.exeをコマンドプロンプトから直接叩いて、他のアカウントではメッセージが日本語ででることを確かめました。

回避策として、他のローカルアカウントをAdministratorsに加えて、ローカルポリーシーでLocal System Accountが持っているのと同じ権限を付与しました。Local System Account自体の言語の設定を変えることも考えましたが、レジストリをいじるぐらいしか手が思いつかず、危険なのでやめました。

2016年9月28日水曜日

SAS9.4ではASYNCHIO、 SYNCHIOはObsolete(廃止)されています。

SAS9.4でSYNCHIOの設定を確認しました。

 ASYNCHIO, NOASYNCHIOのオプションは指定できるものの、設定値としては表示されず効きません。NOSYNCHIOのオプションは指定できるものの、設定値としてはSYNCHIOで変わりません。

 ASYNCIOがObsoleteというのは、SAS9.2のWhat'sに記述ありましたが、AliasのSYNCHIOについては記述が見つかりませんでした。ばっちり明記して欲しいところです。

2016年9月26日月曜日

EG7.1 で credentials.xml の位置が変わってます。

EGで credentials.xml を使う人向けの情報です。
バッチ実行で、credentials.xml を使うネタは、以下のNote:に記述があります。
が、7.1の情報が書かれていません。

Usage Note 30917: Scheduling projects in SAS® Enterprise Guide®


EG7.1のパスは変更されています。
%APPDATA%\SAS\SharedSettings\7.1\credentials.xml で作成してください。
あと、server nameの値はプロファイルの名前でした。これ一時間ほど悩みました。