1

BYGROUPオプションを使用していくつかのデータをプロットしています。#byvalオプションを使用して、各プロットのタイトルにBY GROUP値を自動的に入れることはできますが、各プロットを個別に保存し、それを呼び出すのではなく、#byvalにちなんで名前を付けたいです-SGPLOT01、SGPLOT02 .. ..

たとえば、私が持っているとしましょう:

data xyz;
input type$ x y1 y2@@;
cards;
A 1 5 7
A 2 7 9
A 3 8 10
B 1 5 7
B 2 7 9
B 3 8 10
;;
RUN;

PROC SGPLOT DATA=xyz;
by type;
series1 x=x y=y1/markers;
series2 x=x y=y2/markers;
title "#byval";
RUN;

この例では、タイプAとタイプBにそれぞれ1つずつ、2つのプロットが作成されます。ただし、プログラムはそれらにSGPLOT1.pdfとSGPLOT2.pdfという名前を自動的に付けます。むしろ、A.pdfとB.pdfという名前を付けて、ディレクトリ「C:/SGPLOTS/」に保存したいと思います。

ご協力いただきありがとうございます。

4

2 に答える 2

3

1つのオプションは、次の例のように、ODSを使用し、マクロを使用して各TYPEを個別に印刷することです。

data xyz;
input type$ x y1 y2 @@;
cards;
A 1 5 7
A 2 7 9
A 3 8 10
B 1 5 7
B 2 7 9
B 3 8 10
;
RUN;

ods listing close;

%macro plot_it(type=);

   goptions reset
      device = sasprtc
      target = sasprtc
      ;

   ods pdf file="C:/SGPLOTS/&type..pdf" notoc;

   PROC SGPLOT DATA=xyz;
   by type;
   where type = "&type";
   series x=x y=y1/markers;
   series x=x y=y2/markers;
   title "#byval";
   RUN;

   ods pdf close;

%mend plot_it;

%plot_it(type=A);
%plot_it(type=B);
于 2012-02-29T00:07:40.593 に答える
-1

#BYVALの後に、括弧内に変数名を追加します。この例では、タイトルに#byval(type)を入れます。

SASが「HTMLサンドイッチ」と呼んでいるものの中にあなたの例を入れました。これは上に2行、下に2行です。さらに、ヘルプブラウザオプションを追加しました。これは、SASに独自の機能を使用してHTML出力を表示するように指示します。

option helpbrowser=sas;

/**** top of html sandwich *****/
ods html ;
ods graphics on; 
/*******************************/


data xyz;
input type$ x y1 y2@@;
cards;
A 1 5 7
A 2 7 9
A 3 8 10
B 1 5 7
B 2 7 9
B 3 8 10
;;
RUN;

PROC SGPLOT DATA=xyz;
by type;
series x=x y=y1/markers;
series x=x y=y2/markers;
title "Here is the type:  #byval(type)";
RUN;


/**** bottom of html sandwich *****/
ods graphics off;
ods html close;
/**********************************/
于 2014-02-07T17:32:06.197 に答える