特集

SASシステム
リリース8.2のご紹介
特集

SASシステムリリース8.2のご紹介〜SAS/CONNECTソフトウェアとSAS/IntrNetソフトウェアを中心に〜〜SAS/CONNECT ソフトウェアと
SAS/IntrNetソフトウェアを中心に〜

Q&A

はじめに
SASプログラマーズ・ワークショップ開催のお知らせ

SASシステムリリース8.2が、2001年の夏頃の出荷を目指して準備が進められております。これにより、SASがサポートする全てのOSに
おいてSAS V8eの機能が使えるようになります。本特集では、出荷にSASトレーニングのお知らせ

先駆け、まずBase SASソフトウェアに追加された新機能について簡単

SAS新刊マニュアルのご紹介可能となる、複数の処理を同時に行なう方法についてご紹介します。

にご説明し、次に、バージョン8で追加された機能を用いる事によって

1. サポート予定のOSについて
2. Base SASソフトウェアに追加された新機能のトピックについて
3. SASがインストールされているマシンから複数の処理を同時に行なう方法について
4. SASがインストールされていないマシンから複数の処理を同時に行なう方法について

1. サポート予定のOSについて
SASシステムリリース8.2（Release8.2 TS2M0以降「R8.2」と略）でサポートされるOSについての大きな特徴として、Tru64に続き次ページの表のように従来のAIX、HP-UX、Solarisの各OSにおいても、
64bit版が新たにサポートされるようになったことが挙げられます。
また、今までサポート対象外であったLinuxにおいても正式版の出荷が予定されています。
次ページの表にないOSについては、下記のシステム必要条件のURLをご参照ください。サポートするOSのバージョン以外で、SASをインストールする上でのシステム必要条件については、次のURLもご参照ください。最新バージョンについては、出荷開始頃に掲載いたします。
http://www.sas.com/japan/service/technical/sysreq/index.html

Windows版とUNIX版のサポート予定について
OS区分

OSバージョン

Windows

Windows 95, Windows 98, Windows Me,
Windows NT, Windows 2000
詳しくは、上記のシステム必要条件のURLをご参照くださいAIX（32bit）

2.1 R8.1からR8.2にかけて新たに追加された機能について（Windows版含む）
2.1.1 Base SASソフトウェア
・Cross-Environment Data Access（CEDA）
R8.1では、SASデータセットを、作成したOSとは異なるOS上で、

AIXRelease4.2, 4.3.xx

CEDAの機能を利用して読み込むには、SAS/CONNECTソフト

AIX（64bit）

AIX4.3.3 Service Level 4

ウェアのライセンスが必要でした。しかし、R8.2からはBase SAS

HP-UX（32bit）

HP-UX Release 10.20, 11.0

HP-UX（64bit）

HP-UX Release 11.0

Solaris（32bit）

Solaris Release 2.6, 7以降

Solaris（64bit）

Solaris Release 7, 8

Tru64

DIGITAL UNIX Version 4.0D
Tru64 UNIX Version 4.0F, 5.0a, 5.1

た際、R8.2より圧縮実行後のファイルサイズが圧縮前よりも大き

ABI+ for INTELNCR（UNIXSVR MP-RAS Version 3.02）

されなかったことをワーニングメッセージで表示します。

ソフトウェアの機能の一部になり、SAS/CONNECTソフトウェアのライセンスは不要になりました。
・I/Oの拡張点
COMPRESS =データセットオプション、またはCOMPRESS=
システムオプションによってデータセットに対する圧縮を指定しくなりそうな場合は、データセットを圧縮しません。また、圧縮SCO（UnixWare Version 7）
Sequent（DYNIX/ptx Version 4.4.1）
Sun（Solaris Release 2.6, 7）
IRIX
Linux

IRIX Release6.5以降
Red Hat Linux6.2-Linux Kernel 2.2.x-GNU libc 2.1.3

2.1.2 BaseSASプロシジャ
・OPTLOADプロシジャ
SASレジストリやSASデータセットに格納されているSASシステ
ムオプションの設定を読み込み、それらを有効にします。
・OPTSAVEプロシジャ
現在のSASレジストリやSASデータセットに格納されているSAS

1.1 64bit版のサポートについて

システムオプションの設定を保存します。

まず、64bit版をサポートすることにより、どれだけ大容量のデータが扱えるようになったのかを簡単にご説明します。

・PRINTプロシジャ

32bitのコンピュータ・システムが1アドレスにつきメモリ1バイト

ODS（Output Delivery System）を使用する場合、新しいSTYLE=を割り当てたとすると、次のようになります。

オプションによってフォントフェース、フォントウェイトおよび32ビット（2の32乗）=4,294,967,296=4GB（ギガ・バイト）
同じように、64bitのシステムの場合は次のようになります。
64ビット（2の64乗）=18,446,744,073,709,551,616=16EB（エクサ・バイト）=1600万TB（テラ・バイト）
64bitをサポートすることで、扱えるアドレス空間は飛躍的に増加します。32bit版と64bit版の違いをSASが扱えるメモリ量を例に考えてみましょう。32bit版アプリケーションであるSASシステムリ
リース6.12（Release6.12以降「R6.12」と略します）などでは、2GBの大きさまでしか設定できませんでしたが、64bit版において色のようなプレゼンテーション属性をコントロールできます。
このオプションはリストと出力以外のすべてをサポートします。
STYLE=は、PROC PRINTステートメント、IDステートメント、
SUMステートメントおよびVARステートメントで、利用できます。
・PRTDEFプロシジャ
新しいPRTDEFプロシジャによって、自分のため、またはすべてのSASのユーザのために、バッチ・モード時にプリンタ定義を作成できます。
・REGISTRYプロシジャ
新しいUPCASEオプションによって、入ってくるキー名をすべて大文字に変換できます。

は2GB以上の大きさを設定出来るようになりました。また、今までのUNIX版SASR6.12では、ファイルサイズが2GBを超える大容量のデータを扱う場合には、システムオプションとして「-largefile sasvlfs」の設定があらかじめ必要でしたが、R8.2からは標準で使用できるよ
うになりました。

2. Base SASソフトウェアに追加された
新機能についてBase SASソフトウェアに追加された新機能について、そのいくつかをご紹介いたします。なお、ODS（Output Delivery System）に代表されるSASシステムリリース8.1（Release8.1 TS1M0以降「R8.1」と略）において追加された新機能については、以前のSAS TechnicalNews Autumn 2000において既に取り上げられていますので、そちらをご参照ください。

3. SASがインストールされているマシンから複数の処理を同時に行なう方法について
従来のSASシステムR6.12では、プログラムは単一のCPU上で実行されていました。複数のCPUを同時に使用できるのは、大規模なデータ処理に対応したScalable Performance Data Server のみでした。
このため、通常の処理において複数のCPUが搭載されたコンピュータ・システムであっても、1つのプログラムからはCPUを効率的に使用することができませんでした。SASシステムR8.1以降においても、1つの処理そのものは、依然として１つのCPU上でのみ実行されま
すが、MP CONNECT（SAS/CONNECTソフトウェアの機能）を使用することにより、1つのプログラム上から処理を同期／非同期に複数実行することが可能となりました。このため、複数CPUを効率良く使 用 で き ま す 。ま た 、B a s e S A S ソ フ ト ウ ェ ア に 追 加 さ れ た
SYSTASKステートメントを使うことによっても、コマンド処理を同期／非同期に行ない、複数CPUを効率よく使用できます。

3.1 MP CONNECTとは

3.2 複数同時処理を可能とするコマンドおよびステートメント

従来のSASシステムR6.12では、プログラムはプログラム中にデー
タの読み込みやソート、集計、分析、書き込みなどの処理が扱う複数

3.2.1 SIGNONコマンドおよびステートメントのデータ同士の依存／非依存に関係なく、記述された順序通りに実SIGNONコマンドとSIGNONステートメントは、SASのセッション

行されていました。しかし、扱うデータ同士が非依存であり、あるを起動し、かつ、2つのセッションの関係を確立するために使用し処理を行なっている間に別のデータの処理が可能であるならば、そます。また、SASのセッションを起動する際に必要なオプションは、れらを別々に処理させた方が全体の処理時間は短縮されます。

新しいSASCMDオプションによって指定できます。

下記の図は、ソートや集計、FREQ等、データセットに対して行なう

SASCMD = : SASシステムオプション ;処理をひとつのマクロプログラムとして実行した場合の結果です。
横軸がかかった時間を表し、縦軸は実行した処理数を表します。
MP CONNECTを使用した場合（●）はほぼ同時に終わるのに対して、

3.2.2 RSUBMITコマンドおよびステートメント

処理を1つずつ行なった場合（■）は処理数分の処理時間がかかって

RSUBMITによって、リモートで実行されている処理のアウトプット

いることが確認できます。

やログの取得をあたかもローカル環境で実行しているようにすることができます。このRSUBMITは、同期モードまたは非同期モード

Sun Enterprise 10000（12個の400MHz Ultrasparc processors使で実行できます。同期モードで実行した場合、リモートで処理を実用）でのテスト結果

行している間はローカル側の処理はそのリモートでの処理が終わるまで待ちます。すなわち、このリモートでの処理中はローカル側では 別 の 処 理 を 行 な う こ と が で き ま せ ん 。こ の 同 期 モ ー ド がRSUBMITの初期設定です。非同期モードは、RSUBMITによってバックグラウンドでリモートに処理を実行させ、ローカル側ではすぐに別の処理が可能になります。次のRSUBMITオプションによって非同期モードとして実行されます。

CONNECTWAIT CWAIT WAIT=value

下の図は、上記と同じ処理をCompaq製ProLiant 8000上に550MHz

CWAITはグローバルオプションとして次のように指定することがのCPUを8個搭載したWindows NTでのテスト結果です。この場合でできます。

も、MP CONNECTを使用した場合（●）と、使用しない場合（■）
では、処理時間にかなりの差が確認できます。

OPTIONS CWAIT=NO;

Compaq ProLiantでのテスト結果
WAIT=オプションで指定することができる値は次のとおりです。

YES Y

同期モードを指定する

NO

非同期モードを指定する

N

WAIT=NOを指定した場合には、次のMACVAR=オプションが有効に使えます。このオプションにより、非同期モードで実行されている処理が終了したかどうかを確認できるからです。
しかしながら、MP CONNECTを用いる事で全ての処理で効果を上げ

CMACVAR MACVAR=value

られるとは限りません。効果が期待できるのは次のような場合です。
1．同時に扱うデータ同士が、処理をそれぞれ独立して行なえるような依存関係のないものであること。
2．同時に行なう処理対象がコンピュータ・システムの資源のうち、共有不可能なもの（例えばDATへの書き込みや、読み込みなど）

MACVAR=オプションで指定するvalueは、それぞれのリモートセッ
ションに連携したマクロ変数名となります。このマクロ変数には次のような値が自動的に設定されるので、処理の状態をこのマクロ変数にセットされた値で確認できます。

ではないこと。
3．処理を同時に実行する上で、CPU数、物理的なディスク、I/ O
チャネルなどのコンピュータリソースが十分に用意されていること。

0

RSUBMITは終了した

1

RSUBMITは実行に失敗した

2

RSUBMITはまだ実行中である

3.2.3 WAITFORステートメント

分けるため、下図のように処理中のSAS APサーバーに振り分けて

WAITFORステートメントを使用する事によって、非同期に実行すしまうこともありました。

る1つ以上のタスクが終わるまでローカルのSASセッションを待たせることができます。処理を待つ方法は次の2つがあります。

̲A L L̲

全てのセッションが終了するまで待つ̲ANY̲

指定したいずれかのセッションが終了するまで待つ

SAS/IntrNetVソフトウェア V1.xでの振り分け例

3.2.4 RGETコマンドおよびステートメント
非同期で実行している処理のログやアウトプットはスプールされ、処理中にはローカルのログやアウトプットには表示されません。
しかし、このコマンドおよびステートメントを使用すると、非同期に実行されている処理のスプールされているログやアウトプットを
ローカル側に表示できます。ただし、このRGETを使用すると、
非同期モードから同期モードへと処理が変更されてしまいます。

4.2 SAS/IntrNetソフトウェア V8.xでの複数同時処理

非同期のままで処理の確認をする場合は、MACVARオプションを

SAS/IntrNetソフトウェアV8から、新機能のロードマネージャーに使用するか、LISTTASKステートメントで非同期実行の処理の状態

より、ブラウザからの要求に対し、処理を行なっていないSAS APを確認することをおすすめします。

サーバーへ振り分けを行ない、複数同時処理を効率よく行なえるよ
うになりました。仕組みとして、SAS APサーバーが起動した後、3.2.5 RDISPLAYコマンドおよびステートメント

そのサーバー自身が待機中か処理中かの情報を逐一ロードマネー

非同期で実行されているセッションごとに２つのウィンドウを作成

ジャーに知らせることで、SAS APサーバーの状態を管理できるよします。1つはスプールされているログを表示し、もう一方はアウ

うになりました。

トプットを表示します。
SAS/IntrNetソフトウェア V8.xでの振り分け例
3.2.6 LISTTASKステートメント
全ての非同期モードで実行を行なっている、または終了した処理について、その状態を出力できます。
3.2.7 KILLTASKステートメント
非同期で実行している処理を強制的に終了させることができます。
処理を終了する方法は次の２つがあります。

̲ALL̲

指定した全ての処理を終了する

task

指定した処理を終了する

ロードマネージャーの処理の流れ
設定内容として、2つのSAS APサーバー「5001」と「5002」を起動

4 SASがインストールされていないマシンから複数の処理を同時に行なう方法について
3のMP CONNECTはSAS/CONNECTソフトウェアの機能の一部をするものとします。
1）SAS APサーバーが立ち上がると、それぞれの「待機中」の状態
をロードマネージャーに通知します。

用いることによって実現される複数の処理を同時に実行する方法で

2）ブラウザからの要求をブローカーCGIが受け取ると、ロードマ

した。ここでは、SAS/IntrNetソフトウェアを用いて、クライアント

ネージャーに「待機中」の状態のSAS APサーバーの確認を行な

側にはSASシステムをインストールせず、ブラウザのみでの複数同います。

時処理の方法をご説明します。

3）ロードマネージャーは「待機中」の状態のSAS APサーバー「5001」

4.1 SAS/IntrNetソフトウェア V1.xでの複数同時処理

4）ブローカーCGIはブラウザからの要求を上記３で受け取ったをブローカーCGIに伝えます。
SASシステムV6に対応していたSAS/IntrNetソフトウェア V1.xにおいては、複数のSASアプリケーションサーバー（以降「SAS APサー

SAS APサーバー「5001」へ伝えます。
5）要求を受け取ったSAS APサーバー「5001」は自分の状態がバー」と略）を起動して複数のリクエストに対する処理を行わせる「処理中」になったことをロードマネージャーに伝えます。

ことが可能でした。しかし、処理の振り分けがうまくいかないために、

6）「5001」のSAS APサーバーの処理中に、別のブラウザから要求

必ずしも起動したSAS APサーバー全てが効率よく使用されるものがブローカーCGIに来た場合は、再度ロードマネージャーに「待ではありませんでした。SAS APサーバーを2つ起動した場合を例に具体的にご説明します。ブローカーCGIは、2つのこのSAS APサーバーの名前が登録された設定ファイルをもとに処理の振り分けを行ないます。しかし、この振り分けは、SAS APサーバーで処理が行なわれているかどうかに関係なく、ブローカーCGIがランダムに振り機中」の状態のSAS APサーバーの確認を行ないます。
7）ロードマネージャーは「待機中」の状態の「5002」のSAS AP
サーバーをブローカーCGIに伝えます。
8）ブローカーCGIはブラウザからの要求を上記７で受け取ったSAS
APサーバー「5002」へ伝えます。

9）要求を受け取ったSAS APサーバー「5002」は、自分の状態が「処statisticsオプション使用時のデータセット例

理中」になったことをロードマネージャーに伝えます。
10）SAS APサーバー「5001」と「5002」は、処理が終わり次第、結果をブラウザに返し、自分の状態が「待機中」になったことをロードマネージャーに伝えます。

4.3 SAS APサーバーの新しい起動方法
従来のSAS/IntrNetソフトウェア V1.xからあるSAS APサーバーの起動方法としては次のようなものがありました。
・ブラウザ上での管理画面
今までは、SAS APサーバーの状態を確認する場合、ブラウザ上

ソケットサービス：のURLを次のように指定する必要がありました。

事前に必要な数のSAS APサーバーを起動しておきます。ブラウザからのリクエストによってSAS APサーバーの数が増加することはありません。

http://localhost/scripts/broker.exe?̲service=default&̲program=ping

起動サービス：

SAS/IntrNetソフトウェア V8.2からは、新たにブラウザの画面

ブラウザからのリクエスト毎にSAS APサーバーが起動されます。
プログラムの処理後は自動的に終了します。起動される数に制限はありません。

上でSAS APサーバーの状態の確認、停止を行なうことができる
ようになりました。
管理画面例

SASシステムバージョン8からは、上記の方法に加えて、プールサー
ビスが新たに使用できるようになりました。プールサービスの場合は、起動するSAS APサーバーの最大数とSAS APサーバーが処理後待機している時間を指定することができます。これにより、ロード
マネージャーと共に使用することで、サーバー側のリソースをより効率的に使用できます。プールサービスを利用した場合のSAS AP
サーバーの動きについて、次のような具体例でご説明します。この
具体例での設定内容を以下のようにします。
・プールサービスとして最大3つのSAS APサーバーを起動するようにし、処理後の待機時間を30分間とします。
・各クライアントからの処理時間は5秒間を前提とします。
例1）クライアントからの要求が5秒以内に３つ同時に起こった場合を想定します。この場合は、SAS APサーバーが３つ起動して処理が行なわれます。処理後30分間に何もクライアントからのリク
エストがない場合は、3つのSAS APサーバーは終了します。

管理画面例（続き）

例2）2つのクライアントからの要求が5分間隔で交互にあった場合を想定します。この場合は、1つのSAS APサーバーだけが起動し、それらのリクエストに対して処理を続行します。

4.4 その他の機能
新しくサポートされている機能としては、セキュリティ関係や、暗号化なども挙げられますが、ここでは最も利用されると思われる機能の追加点をご紹介します。
・statisticsオプション
statisticsオプションをSAS APサーバーの起動時に指定することによって、ブラウザからSASサーバーへ投げられたリクエストを指定したデータセットとして作成できるようになりました。これにより、次の画面例のようにそれぞれのリクエストについて、おわりにSASシステムリリース8.2が出荷されることによって可能となる、複数同時処理の方法についてご紹介いたしました。本稿は出荷前のベータ製品において確認はしておりますが、出荷版におきましては若干の変更点がある場合もございますので、あらかじめご了承ください。

サービス名や使用したプログラム名が記録されるので、サイト管理がより簡単になります。

参考文 献
タ イト ル：「Multiprocessing with Version 8 of the SAS System」
著

者：Cheryl Garner, SAS Institute Inc.

参照URL：http://ftp.sas.com/techsup/download/technote/ts632.pdf

リモートのマクロ変数の値をローカルのマクロ変数に設定するには、%SYSRPUTを使用できますが、逆にローカルのマクロ変数の値をリモートに渡すには、どのようにすればいいですか？
●ログを出力させない方法について●SAS/CONNECT ローカルのマクロ変数をリモートに渡す方法について●SASシステム V8.1におけるフォーマットの拡張点について●SAS/IntrNetソフトウェアにおけるアプリケーションサーバーの停止方法について●SASプログラムの再起呼び出しについて●SCL関数のSASNAMEと同じ機能をDATAステップで使用する方法について（対象リリース：V 6.x）
●変数の並び順の指定および変更の方法について●ODSからのHTMLの出力ページの制御方法について●V8.1におけるソリューションメニューの必須ライセンスについて●回帰パラメータに制約条件をつけて重回帰分析を行なう方法について●V8のSAS/ETSソフトウェアの追加機能について

下記のようなマクロを使ってマクロ変数の値を渡すことができます。自動呼び出しマクロに登録してご利用になると便利です。
マクロ例%macro lput(macvar,macval,remote=);options nosource nonotes;%let str=%str(rsubmit &remote;options nosource;)%nrstr(%let)%str(&macvar = &macval;options source;endrsubmit;);&str;options notes source;%mend lput;

書式
SASの実行時にメッセージ等のログ情報を抑制する方法はありますか？

%lput(リモートのマクロ変数,ローカルのマクロ変数 or 値,<リモートホスト>)

FILENAMEステートメントにて、DUMMYデバイスを指定し、PRINTTOプロシジャにて、ファイル参照名を指定すると、ログの出力を抑制することができます。
また、NOSOURCEオプション、NONOTESオプションを使用すると、プログラムソース、NOTEから始まるメッセージのログへの出力をローカルの&SYSERRの値をリモートのS̲ERRというマクロ変数にセットしています。

使用例

抑制することができます。（ERROR、WARNINGは出力されます）
proc print data=aaa;

1. ログ全体を表示させない方法
FILENAME AAA DUMMY;
PROC PRINTTO LOG=AAA;
RUN;

run;
%lput(s̲err,&syserr);
rsubmit;%put &s̲err;...
endrsubmit;（元に戻す場合）
PROC PRINTTO;
RUN;

V8.1で追加あるいは拡張されたフォーマットはありま
すか？

2. NOTEメッセージ、プログラムを出力しない方法
OPTIONS NONOTES NOSOURCE;（元に戻す場合）
OPOTIONS NOTES SOURCE;

フォーマットについて、V6とV8.1で大きく異なるのは
以下の3点です。
1. 文字フォーマットの割り当て可能な文字の拡張
V8.1では文字フォーマットとして割り当てられる値が32,767バイトまでに拡張されました。ただし、文字フォーマットとして使える名前は変更されていません（$から始まる8文字以内の英数字）。

2. 通貨関係のフォーマットの拡張/* intrstop.sas */* 下記の"websrv" と"scripts"、"broker.exe" の記述は適宜環境に合わせて変えてください /*/COMMAw.d / COMMAXw.d / YENw.dfilename websrv url

フォーマットの「d」はV6では「0」または「2」のいずれかでしたが、'http://websrv/scripts/broker.exe?̲service=

V8.1ではその制限がなくなりました。

default&̲program=endsas';

例）123456.789 を「yen12.4」フォーマットを使用して表示

data ̲null̲;infile websrv;
input ;

¥123,456.7890

run;

また、DOLLARw.d / DOLLARXw.d等も同様の拡張が行なわれています。
3.コマンドプロンプトから次のように実行して下さい。

3. 日付表示関係のフォーマットの拡張d:¥sas>sas -sysin intrstop.sas

DDMMYYxw. / MMDDYYxw. / YYMMDDxw.

フォーマットが追加されました。「x」の部分を変更することで、今まで「2001-01-01」のみの形式しか表示できなかったものが、以下の形式も可能になりました。

他言語にあるような再帰呼び出しをSAS言語で実現したいのですが、可能でしょうか？

例）2001-01-01の場合「x」=b：YYMMDDb10.

「2001 01 01」「x」=c：YYMMDDc10.

「2001:01:01」

SAS言語で再帰呼び出しをする機構を実現できるもの
として、マクロ機能を利用することが考えられます。

「x」=d：YYMMDDd10. 「2001-01-01」「x」=n：YYMMDDn8.

「20010101」「x」=p：YYMMDDp10.

「2001.01.01」「x」=s：YYMMDDs10.

「2001/01/01」

再帰呼び出しに使用する関数をマクロ機能で実行することで実現可能な場合があります。
例えば、有名な"ハノイの搭"の手順を示すプログラムは以下のように実現できます。

Windows NTサーバー上のSAS6.12版 SAS/IntrNetソ
フトウェアのアプリケーションサーバー（ソケットサービス）をバッチ処理で起動および終了させることを考えています。起動はマニュアル「スクリプトを使用したサーバの起動」を参考にしています。終了に関しては対話モードでの停止（Ctrl+Break）もしくは、リモートのブラウザからのendsasステートメント以外でバッチ処理できる方法はありませんか？

/* ハノイの搭 */%macro hanoi(num, start, target, work);*** num: 板の枚数 start: 移動元の柱 ;*** target: 移動先の柱 work: その他の柱 ;%if num >0 %then %do;%hanoi(%eval(&num -1), &start, &work, &target);put " &num 枚目を &start から &target へ移動";%hanoi(%eval(&num -1), &work, &target, &start);%end;

アプリケーションサーバーの停止方法として、バッチ処理で停止する方法があります。この方法であれば、ATコマンドと組み合わせてスケジュール管理ができます。

%mend;
data ̲NULL̲;
put '3枚の板からなる搭を右の柱から左の柱に移す手順を表示';%hanoi(3, 右, 左, 中);

1. httpdサービスを、ポート番号80として「C:¥WINNT¥system32¥drivers¥etc」のservicesファイルに登録して下さい（弊社で確認したところ、ポート番号が異なると正しく動作しないようです）。
2. 次のintrstop.sas のファイルを作成して下さい。

run;

SASマクロやSAS DATAステップで、SCL関数のSAS

データセット old の変数は、a c b d の順になります。

NAMEに相当する機能はないでしょうか。指定されたものが有効な変数SAS名（8文字以内の英数字）かどうか/ 変数の並び順の変更 /*チェックを行なう場合にはどうすればよいでしょうか。

data new;*/ 以下のFORMATステートメントによって並び順を変更します。

*

SASマクロやSAS DATAステップでは、SCL関数のSAS

このステートメントは、SETステートメントの前に記述します。 /NAMEに相当する関数はありません。簡単なマクロを

format a b c d;

用意することで、条件付きではありますが、同等の機能

set old;を実現することが可能です。

run;/ マクロ NAMECHK /

*

*

*

データセットnewの変数は、a b c d の順になります。既存のデータ%MACRO NAMECHK(NAME);

セットの変数の並び順を変更する場合は、FORMATステートメント%LET FIRST̲CH=ABCDEFGHIJKLMNOPQRSTUVWXYZ̲;%LET THE̲REST=ABCDEFGHIJKLMNOPQRSTUVWXYZ̲

を用いると、変数の長さを再度指定する必要がありません。

0123456789;
NOT (VERIFY(SUBSTR(UPCASE(&NAME),1,1),"&FIRST̲CH"))

V8.1にてODSで出力されたHTMLファイルを印刷すると、AND改ページが多く紙が無駄になります。これを防ぐ方法

NOT (VERIFY(SUBSTR(UPCASE(&NAME),2),"&THE̲REST"))AND (LENGTH(&NAME) LE 8);%MEND NAMECHK;はありますか？

/ V6 用 /**/ TEST NAMECHK / → / V8用のコーディングを追加 /*DATA ̲NULL̲;

*

*

*

スタイルテンプレートの、PAGEBREAKHTML=属性を
̲UNDEF̲に指定すると、無駄な改ページを防げます。

NAME='̲2345678';
RC=%NAMECHK(NAME);

例）PUT RC=;
RUN;/ スタイルテンプレートStyles.Defaultを元に、Styles.Test※ただし、このマクロプログラムは、SASシステム V6に対応したものです。

**// を作成します。
**// デフォルトのODS PATH設定の場合、作成されたテンプレート /**/ はテンプレートストアSASUSER.TEMPLATに保存されます**/
proc template;

SASデータセット内の変数の並び順を指定または変更

define style styles.test;

したいのですが、どのようにすればよいでしょうか。

parent=styles.default;
style Body from Body /pagebreakhtml=̲undef̲;

データセット内の変数の並び順は、そのデータセットが作成される際にDATAステップ内に記述される順と

end;
run;

なっています。
/ Styles.Test を使用してHTMLを出力します /明示的に並び順を指定する場合は、LENGTHステートメントやFORMATステートメントをDATAステップの先頭で指定します。

**

ods html file='c:¥temp¥test.html' style=styles.test;/ 新規データセットの作成 /proc univariate data=sashelp.class;data old;

run;

*

/

*

*

変数の並び順は、以下のLENGTHステートメントで指定した順になります /*

ods html close;

length a c 8
bd$4;
input a b c d;SASシステム V8.1において、（ソリューション）メニューの（統計解析）項目で呼び出されるアプリケーションに

cards;
1a2b;run;

必要なライセンスは何ですか？

これらのV8.1でのアプリケーションを用いることに■マーケットリサーチ

より、マウス操作を中心にした分析を行なうことがで必須きます。なお、これらのアプリケーションは日本語化

・Base SASソフトウェア

されていません。

・SAS/STATソフトウェア

V8.1では、以下のライセンスが必要となっています。

オプション
・SAS/GRAPHソフトウェア（様々な結果のグラフを表示する時）■アナリスト・SAS/FSPソフトウェア（分析用データの表示）

必須・Base SASソフトウェア■プロジェクト管理

・SAS/STATソフトウェア

必須・SAS/GRAPHソフトウェア

・Base SASソフトウェア

・SAS/ASSISTソフトウェア（ライセンスのみ必要です）

・SAS/ORソフトウェア

オプション

オプション

・SAS/IMLソフトウェア（信頼楕円のグラフ描画などに必要です）

・SAS/GRAPHソフトウェア（ガントチャートなどの様々なグラフ

・SAS/ACCESS for PC File Formatsソフトウェア（Excelファイル
をSASデータセットにする時などに必要です）

を表示する時）・SAS/IntrNetソフトウェア（Webを通じた配信を行なう場合）

■実験計画

■品質管理

必須

必須

・Base SASソフトウェア

・Base SASソフトウェア

・SAS/QCソフトウェア

・SAS/QCソフトウェア

・SAS/GRAPHソフトウェア
オプション
オプション

・SAS/GRAPHソフトウェア（様々なグラフを表示する時）

・SAS/ACCESS for PC File Formatsソフトウェア（Excelファイ

・SAS/FSPソフトウェア（データの入力）

ルをSASデータセットにする時などに必要です）
・SAS/STATソフトウェア（split plot analysis,canonicalanalysis,ridge analysisを行なう時）
・SAS/IMLソフトウェア（variance dispersionのグラフを描く時）■待ち行列シュミレーション
必須・Base SASソフトウェア
・SAS/ORソフトウェア■ガイド付きデータ解析
必須■時系列解析

・SAS/LABソフトウェア

必須・Base SASソフトウェア

・Base SASソフトウェア

・SAS/GRAPHソフトウェア

・SAS/ETSソフトウェア

・SAS/FSPソフトウェア（フルスクリーンのデータ入力）
オプション■対話式データ解析

・SAS/GRAPHソフトウェア（様々なグラフを表示する時）

必須・Base SASソフトウェア■時系列ビューア

・SAS/INSIGHTソフトウェア

必須・Base SASソフトウェア

オプション・SAS/ETSソフトウェア

・SAS/GRAPH ソフトウェア（グラフを保存・印刷する時。グラフ

・SAS/GRAPHソフトウェアの表示はSAS/GRAPHソフトウェアがなくてもできます）
注意：

■投資分析

1. V8.1より、ビューテーブル（VIEWTABLE）での編集において、

必須

SAS/FSPソフトウェアが不要になったため、いくつかのアプリ

・Base SASソフトウェア

ケーションでは、SAS/FSPソフトウェアのライセンスが必要で・SAS/ETSソフトウェア

なくなりました。詳しくは下記URLを参照して下さい。

オプション

http://www.sas.com/service/techsup/unotes/SN/000/000302.html

・SAS/GRAPH ソフトウェア（breakeven graphを描く時）
2. 多くのアプリケーションにおいて、グラフを表示するために
SAS/GRAPHソフトウェアが必要です。

重回帰分析の回帰パラメータに次のような制約条件を4のMODELプロシジャのプログラム例

付けて実行したいと思います。以下のような重回帰分

4や5の制約条件をつけるには、NLINプロシジャでは、実行すること

析で、y=b0＋b1x1＋b2x2＋b3x3、制約条件としてはができません。SAS/ETSソフトウェアのMODELプロシジャ（RESTRICT
ステートメント）、もしくは、SAS/ORソフトウェアのNLPプロシ

以下のような5つを考えています。

ジャ（LINCON,NLINCONステートメント）で行なうことができます。
＊等号条件
以下にRESTRICTステートメントを指定します。

1. 2 b1=b2*
2. 2 b1+b3=10*

proc model data=reg;/＊不等号条件**初期値の指定**/

parms b0=1 b1=1 b2=1 b3=1;

3. b1, b2, b3>0
4. 3 b1+b2>20

*
* *

/

**MODELの指定**/* * */ RESTRICTステートメントの指定 /****restrict 3 b1+b2>20;*

5. 2 b1 b2>50

y=b0+b1 x1+b2 x2+b3 x3;

このような制約条件がつけられるプロシジャを教えて下さい。

1および2の制約条件をつけて重回帰分析を行なうには、/

SAS/STATソフトウェアのREGプロシジャに

fit y/ols;**OLSオプションで、最小2乗法を指定**/RESTRICTステートメントを指定して実行することが

run;

できます。
1のREGプロシジャのプログラム例

5の例

RESTRICTステートメントを指定します。
proc model data=reg;
proc reg data=reg;/

model y= x1 x2 x3;/ RESTRICTステートメントの指定*

restrict 2 x1=x2;
run;**初期値の指定**/

parms b0=1 b1=1 b2=1 b3=1;

*

**/
/

**MODELの指定**/* * *y=b0+b1 x1+b2 x2+b3 x3;/**RESTRICTステートメントの指定**/* *fit y/ols; / OLSオプションで、最小2乗法を指定 /****2のREGプロシジャのプログラム例

restrict 2 b1 b2>30;

proc reg data=reg;

run;model y= x1 x2 x3;/ RESTRICTステートメントの指定*

restrict 2 x1+x2=10;
run;

*

**/

＊それぞれのプロシジャに関する詳細は、下記のマニュアルに記載されておりますので、ご参照ください。

＊Version6.12の場合・REG、NLINプロシジャ
3のNLINプロシジャのプログラム例「SAS/STAT ソフトウェア：ユーザーズガイド, Version 6, First3の不等号の制約条件を付ける場合には、REGプロシジャでは実行

Edition（注文番号：1054 ¥9800）」

することができません。SAS/STATソフトウェアのNLINプロシジャ、「SAS/STAT Software : Changes and Enhancements throughSAS/ETSソフトウェアのMODELプロシジャ、SAS/ORソフトウェ

Release 6.12（注文番号：55779 ¥8400）」

アのNLPプロシジャを利用して、実行することになります。

「SAS/STAT Software : Changes and Enhancements
through Release 6.11（現在廃刊）」

以下にBOUNDSステートメントを指定します。
・MODELプロシジャ
proc nlin data=reg;/**

初期値を指定します「SAS/ETS User's Guide Version6, Second Edition（注文番号：**/

56010 ¥6900）」

parms b0=1 b1=1 b2=1 b3=1;「SAS/ETS Software : Changes and Enhancements Release/

6.11（注文番号：55474 ¥2000）」***モデルの指定**/* *model y=b0+b1 x1+b2 x2+b3 x3;
bounds b1, b2, b3 >0;run;*

・NLPプロシジャ「SAS/OR Technical Report : The NLP Procedure（注文番号：
55843 ¥3800）」

＊Version8.1の場合
SAS OnlineDoc Version 8 の該当プロシジャの章

SAS/ETSソフトウェアのプロシジャで、V8.1で追加されたものはありますか？

SASプログラマーズ・ワーク・ショップ
開催のお知らせ
本年夏頃、待望のUNIX版SASリリース8.2の出荷を予定しております。
今回のプログラマーズ・ワーク・ショップでは、全般的なSAS 8.2の紹介に加え、SAS/IntrNetソフトウェア8.2の新機能紹介や異機種間にてデータ転送の際に使用するSAS/CONNECTソフトウェアの並新しいプロシジャは2つあります。

列処理化を実現したMP CONNECT機能について紹介いたします。
日程：5月18日（金）1．VARMAXプロシジャ
多次元ベクトルを値にとる時系列モデルに対して、自己回帰（AR）
モデル、誤差修正モデルを当てはめるプロシジャです。経済モデル

会場：株式会社SASインスティチュートジャパン 東京本社
住所：東京都中央区勝どき1-13-1 イヌイビル・カチドキ8F
プレゼンテーションルーム

における時系列では、他の時系列の過去の値に依存するものが

時間：14:00〜17:00

ありますが、VARMAXプロシジャはそれらに対応しています。

定員：50名移動平均（MA）モデルについては、今後サポートされる予定です。
日程：5月25日（金）2．X12プロシジャ
米国のセンサス局が開発、研究を現在進めている「X-12-ARIMA
季節調整プログラム」を、SAS上で実行するプロシジャです。

会場：株式会社SASインスティチュートジャパン 大阪支店
住所：大阪市北区堂島浜1-4-16 アクア堂島西館12F
プレゼンテーションルーム

「X-12-ARIMA」は、既存のX11プロシジャで実行可能であった

時間：14:00〜17:00「X-11-ARIMA」を改良、発展させたものです。2001年2月現在、定員：50名センサス局の「X-12-ARIMA」の最新バージョンは0.2.8ですが、SASではバージョン0.2.5までサポートしています。

両日とも参加は無料となりますので、ぜひご参加ください。なお、定員に限りがございますので、お早めにお申し込みください。お申

これらのプロシジャに関する詳細は、「SAS/ETS Software:

し込み方法は、「SASプログラマーズ・ワーク・ショップ参加申込

Changes and Enhancements, Release 8.1（注文番号：P58011 ¥7100）」

用紙」へご記入の上、FAX、E-mailにてご送付ください。SASプログ

をご参照ください。

ラマーズ・ワーク・ショップのお申し込み用紙は下記のURLより入手できます。
http://www.sas.com/japan/service/technical/pws.html
その他、ご不明点、ご質問がございましたら、以下までご連絡下さい。

お問い合わせ・お申し込み
マーケティング部

SASシステムV8.2に関するトレー
ニング開催のお知らせ
6月からはSASシステムバージョン8.2に関するトレーニングの臨時開催を多数予定しております。5月（6月の一部）までは従来通りバー
ジョン6.12中心に講義を進めてまいります。

中止コースのお知らせ
V8.2リリースを前にコースの見直しをさせて頂くため、4月と5月の2ヶ月間は一時的に以下のコースを中止とさせていただきます。

・Using the SAS Windowing Environment :A Quick Tutorial
注文番号 ：57201（英語版）
価

格 ：4,500円
本書は、SASシステムの初心者向けにわかりやすく記載された■アプリケーション構築入門コース

入門書です。図解入りのチュートリアル形式で本書は記載されて■アプリケーション構築上級コースいるので、段階的にSASシステムを理解することができます。

■簡易アプリケーション構築の基礎コース

このチュートリアルではSASプログラム・エディタ、SASログ■SASシステムによるクライアント／サーバシステム構築の基礎コース

およびSASアウトプットウィンドウについて説明しています。

■SAS/IntrNet入門コース

SASのプログラムを書くためにこれらのウィンドウを使用し、■SASによるレポート作成コース

フロッピーディスクにそれらをセーブし、実行し、ログとアウ■SASによるグラフ作成コース

トプットのファイルを確認し、かつ結果を印刷する方法について本書では説明しています。SASのシステムについての知識は

テキスト販売は引続きいたしておりますので参考資料としてどうぞ

特に必要ありません。ほかに、INPUTステートメントの記載方法、ご活用下さい。お申し込み方法はマニュアル同様にファクシミリに生データの読み込み方法、クロス集計を含む単純な記述統計分て承っております。

析の実行方法、SASプログラムにおいて最も陥りやすいエラーの識別およびデバッギング方法についても触れられています。

7月からのスケジュールやV8.2に関するコース内容やについての情報が満載の「SASトレーニングご案内」パンフレットは、6月初旬にSASコンサルタント様宛てに一斉発送いたします。

・Visualizing Categorical Data
注文番号 ：56571（英語版）
価

格 ：13,700円

お問い合わせ・お申し込み

本書では、S A Sシステムによって、カテゴリカルデータを様々〒104-0054 東京都中央区勝どき1-13-1イヌイビル・カチドキ7Fなグラフで表す方法について述べています。量的データをグラ

トレーニング担当

フ表示する方法は幅広く使用されていますが、質的データに対するものはあまり存在していませんでした。本書では、カテゴ
リカル変数の間の関係や、対応分析、ロジスティック分析、対数線形モデルに関したグラフの紹介を行なっています。汎用的なマクロやプログラムが付いていますので、実際に自分自身でグラフを作成することができます。

大江戸線開通により東京会場は勝どき駅から徒歩3分です・SAS System for Regression, Third Edition
注文番号 ：57313（英語版）
価

格 ：8,600円
SASシステムを用いて回帰分析を実行する方法が、例題に添って幅広く紹介されています。非線形モデルを含む幅広い回

SAS新刊マニュアルのご紹介
SASインスティチュートジャパンおよびSAS Instituteより発売された新刊マニュアルをご紹介します。なお、こちらに記載する価格はすべて税抜きです。ご購入については、専用のお申し込み用紙にて
FAXで弊社「マニュアル販売係」までお申し込みください。

帰分析を実行するための基礎を学ぶことができます。REGプ
ロシジャを用いた線形回帰分析（外れ値や多重共線性の対処方法などの診断方法なども含む）や、PLOTプロシジャ（BaseSAS）、
NLINプロシジャ、RSREGプロシジャ、PRINCOMPプロシジャ（SAS/STAT）、AUTOREGプロシジャ（SAS/ETS）などの例が述べられています。第３版では、数多くの改訂がなされています。例えば、SAS/INSIGHTソフトウェアを用いた回帰分析、
LOGISTICプロシジャ（SAS/STAT）を用いた２値の応答変数に対するロジスティック回帰、LOESSプロシジャを用いたノンパラメトリック回帰などについても触れられています。また、

なお、最新のマニュアル案内は弊社ホームページ

REGプロシジャで用意されている高解像度のグラフ、（ http://www.sas.com/japan/ ）にて公開しておりますので併せてごOUTESTオプションの説明、SCOREプロシジャを用いて予測

利用ください。

値を求める方法なども述べられています。

・Using the SAS Windowing Environment :A Quick Tutorial＜価格改定のお知らせ＞

注文番号 ：57201（英語版）

2001年6月1日より英語版マニュアルの価格を改訂いたします。全品

価

目平均で約17％の値下げになります。価格変更後のPublications

格 ：4,500円

Catalogは5月中旬に弊社ホームページに公開する予定です。冊子でご希望の方は弊社「マニュアル販売係」まで、FAXまたはE-mailにてご請求ください。

発行
株式会社SASインスティチュートジャパン
テクニカルニュースに関するお問い合わせ先
テクニカルサポートグループ