0

SAS は初めてで、112 個の変数を sgplot する必要があります。変数名はすべて大きく異なり、時間の経過とともに変化する可能性があります。すべての変数をリストすることなく、ステートメント内の各変数を呼び出すにはどうすればよいですか?

これが私がこれまでに行ったことです:

%macro graph(var);
proc sgplot data=monthly;
series x=date y=var;
title 'var';
run;
%mend;

%graph(gdp);
%graph(lbr);

上記のコードは、112 個の %graph() 行をリストし、後で変数名が変更されたときに名前を変更する必要があるため、面倒な場合があります。

事前に助けてくれてありがとう。

4

1 に答える 1

0

リスト処理は、このようなものに対処するために必要な概念です。この問題にアプローチするために、BY グループ処理を使用するか、場合によってはパネリングをグラフ化することもできます。

変数のリストを含む便利なソースからデータセットを作成します。これは、Excel ファイルまたはテキスト ファイルである可能性があります。または、必要な変数をプログラムで伝える方法があれば、データから作成することもできます。

次に、いくつかの方法のいずれかを使用してこれを生成できます。

proc sql;
  select cats('%graph(',var,')') 
    into: graphlist separated by ' '
    from yourdata;
quit;

&graphlist

例えば。

あなたの場合、変数ごとに1行の垂直データセットを生成することもできます。これにより、どの変数が正しいかを簡単に判断できます。

data citiwk;
  set sashelp.citiwk;
  var='COM';
  val=WSPCA;
  output;
  var='UTI';
  val=WSPUA;
  output;
  var='INDU';
  val=WSPIA;
  output;
  val=WSPGLT;
  var='GOV';
  output;
  keep val var date;
run;
proc sort data=citiwk;
  by var date;
run;

proc sgplot data=citiwk;
  by var;
  series x=date y=val;   
run;

これら 4 つをハードコーディングしましたが、簡単に配列を作成し、VNAME() を使用して変数名を取得したり、VLABEL() を使用して各配列要素の変数ラベルを取得したりできます。

于 2015-02-19T16:21:29.040 に答える