V8とODSの紹介デモ
SAS Institute Japan Ltd.
Solution Planning Center
東 一成（Azuma一成（Azuma Kazunari）
Kazunari ）jpnkaa@jpnkaa@jpn.
jpn.sas.com
sas.com

Cop yrigh t © 2000 , SAS In stitute Inc. All rights reserved.

AGENDA

V８とODSの簡単な紹介■EnterpriseMiner4.0の紹介■

1

V8の新機能の新機能
OutputDeliverySystem（（ODS））
アウトプット画面の違い■ V6ではでは…
では• キャラクターベースの画面にすべてのアウトプットが出力されており、柔軟性にかけていた。また見栄えも…。
り、柔軟性にかけていた。また見栄えも 。
• HTMLを作成する時はを作成する時はBase
SASに含まれているに含まれているを作成する時はoutput2htm,ds2htm,tab2htmなどのマクロを利用することが可などのマクロを利用することが可能となっていた。
■

V8では
では…
では

• HTMLへの出力はもちろん、への出力はもちろん、ActiveX、、Java、、RTF、、PDF、、への出力はもちろん、PostScriptなどにもなどに様々なプロシジャの結果を出力するこなどにもなどに様々なプロシジャの結果を出力することが簡単になっている。（まだ予定の部分もあります）• Proc reportなどのプロシジャを使いこなすと、かなりきれいなレなどのプロシジャを使いこなすと、かなりきれいなレポートも作成が可能です。

さっそくデモを見てみましょう！！

2デモ１のプログラムとアウトプット画面
度数パーセント
行のパーセント
列のパーセント

ods html file="e:¥html¥ods1.htm";
proc freq data=demo.fitness;

GENDER と SPORTS との表

tables gender * sports;
run;

SPORTSGENDER

あまりしないよくする

時々する

全くしない合計

女

39.68
30.00
33.33

0
0.00
0.00
0.00

1
3.23
10.00
25.00

6
19.35
60.00
37.50

1032.26男

619.35
28.57
66.67

2
6.45
9.52
100.00

3
9.68
14.29
75.00

10
32.26
47.62
62.50

21
67.74

9
29.03

2
6.45

4
12.90

16
51.61

31
100.00ods html close;

合計

デモ２のプログラムとアウトプット画面
度数パーセント
行のパーセント
列のパーセント

ods html file="e:¥html¥ods2-2.htm"
style=FancyPrinter ;proc freq data=demo.fitness;

GENDER と SPORTS との表

tables gender * sports;
run;

SPORTSGENDER

あまりしない

よくする

時々する

全くしない

合計

女

39.68
30.00
33.33

0
0.00
0.00
0.00

1
3.23
10.00
25.00

6
19.35
60.00
37.50

10
32.26

男

6
19.35
28.57
66.67

2
6.45
9.52
100.00

3
9.68
14.29
75.00

10
32.26
47.62
62.50

21
67.74

9
29.03

2
6.45

4
12.90

16
51.61

31
100.00ods html close;

合計3

デモ３のプログラムとアウトプット画面
ods html body="e:¥html¥ods3b.
body="e:¥html¥ods3b.htm="e:¥html¥ods3b. htm"
htm"
frame="e:¥html¥ods3f.
frame="e:¥html¥ods3f.
="e:¥html¥ods3f.htm
htm"
htm"
contents="e:¥html¥ods3c.
contents="e:¥html¥ods3c.htm";="e:¥html¥ods3c.htm
htm";
proc glm data=demo.fitness;model oxygen=age weight runtime maxpulse ;run;proc corr data=demo.fitness kendall;
kendall ;var oxygen age weight runtime maxpulse;
maxpulse;
run;proc print data=demo.fitness;run;ods html close;

デモ４のプログラムとアウトプット画面
ods html file="e:¥html¥ods4.
file="e:¥html¥ods4.htm
htm";
htm";
title 'PROC Tabulate Output in HTML';
footnote1 'ODSのサンプルプログラムです。
'ODSのサンプルプログラムです。';のサンプルプログラムです。';
footnote2 '出力結果をさまざまにカスタマイズできます。
'出力結果をさまざまにカスタマイズできます。';
出力結果をさまざまにカスタマイズできます。 ';proc tabulate data=demo.fitness s={foreground=green};class chiku genderclass sports/ s={foreground=blue};/ s={foreground=yellow};

var age weight oxygen / s={foreground=black};
keyword N mean

/ s={foreground=white};label chiku="chiku="地区="地区"
地区" gender="性別gender="性別"
性別" sports="スポーツ
sports="スポーツ";
スポーツ";
keylabel mean="平均mean="平均";平均";keylabel n="件数n="件数";件数";
table ALL={label = "クロス集計表"クロス集計表"
クロス集計表" s={foreground=orange}},(chiku(chiku )*(gender *{s={foreground=#002288}}),(sports)*(oxygen*f=8.2 age*f=8.2 weight*f=8.2)*mean N/
s={background=red}
misstext={label="Missing"misstext ={label="Missing" s={foreground=brown}}box={label="地区＊性別＊スポーツの頻度
box={label="地区＊性別＊スポーツの頻度"
地区＊性別＊スポーツの頻度" s={foreground=purple}};run;

4

デモ５のプログラムとアウトプット画面
ods listing close;
ods html file="e:¥html¥ods5.
file="e:¥html¥ods5.htm
htm";
htm";
goptions reset=global gunit=pct
gunit=pct border device=ActiveX
ftext =swissb htitle=6
htitle=6 htext=3
htext=3 cback=CXFFF7CE;
cback =CXFFF7CE;
title3;footnote1 'Fitness'Fitnessデータのグラフ表示
データのグラフ表示';
データのグラフ表示';
proc sort data=demo.fitness;by gender;proc g3d data=demo.fitness;scatter oxygen*age=weight/ gridcolor='CXFFFF00'
shape='balloon'
noneedle;;
noneedlerun;

Javaと記述すればJavaのアプレットを出力

ods html close;

デモ６のプログラムとアウトプット画面
ods listing close;
ods html file="e:¥html¥ods6.
file="e:¥html¥ods6.htmhtm";
htm";
goptions reset=global gunit=pct
gunit=pct borderdev=
dev=activex
ftext=ftext=swissb htitle=6htitle =6 htext=3
htext=3 cback=CXFFF7CE;
cback =CXFFF7CE;
title1 '株価
'株価';
株価';
title2 height=4 'いろいろなカスタマイズが可能です' いろいろなカスタマイズが可能です'; /* define symbol characteristics */symbol1 color=red interpol=none
interpol =none value=triangle;
symbol2 color=blue interpol=joininterpol =join value=dot;
proc gplot data=demo.citiday
data=demo.citiday;
citiday;plot snydjcm*datesnydjcm*date dsiukas*datedsiukas*date / overlay; run;5

その他のサンプルプログラム
RTF形式への出力
RTF
形式への出力ods rtf file="e:¥html¥ods_rtf1.rtf
file="e:¥html¥ods_rtf1.rtf";
rtf ";
proc glm data=demo.fitness;model oxygen=age weight runtime maxpulse ;run;

PDF形式への出力
PDF
形式への出力ods listing close;
ods printer file="e:¥html¥ods_PDF1.pdf
file="e:¥html¥ods_PDF1.pdf"
pdf " pdf nopdfnote;
nopdfnote;proc glm data=demo.fitness;model oxygen=age weight runtime maxpulse ;proc corr data=demo.fitness kendall;
kendall;var oxygen age weight runtime maxpulse;maxpulse;
run;

run;
proc corr data=demo.fitness kendall;
kendall;var oxygen age weight runtime maxpulse;
maxpulse; run;proc print data=demo.fitness;proc print data=demo.fitness; run;run;proc print data=stanout
data=stanout;
stanout; run;proc print data=stanout
data=stanout;
stanout;

ods printer close;run;
ods rtf close;EnterpriseMiner4.0の紹介の紹介

6