0

パネル データセットがあり、(Year、LoadPort、DischargePort) の一意の組み合わせに基づいて、変数のグループの ID を作成する必要があります。データセットに保持したい変数は他にもありますが、グループを識別するためには必要ありません。例えば:

Year LoadPort  DischargePort ID
2007 ARZEW     LOOP TERMINAL 1
2008 ARZEW     LOOP TERMINAL 1
2011 RAS TANURA ZHONGSHAN    2
2010 RAS TANURA ZHONGSHAN    2

最後の列を作成する必要があります。これは私が試したものですが、ナンセンスな結果が得られます:

proc sort data=data.benchmark5;
by loadport dischargeport year;
run;

data data.benchmark6;
   set data.benchmark5;
   retain ID;
   by loadport dischargeport year;
   if first.year then ID = 0;
   ID = ID + 1;
   run;
4

2 に答える 2

1

あなたはとても親しかった。first.year でのみ ID 変数をインクリメントするだけです。

data data.benchmark6;
   set data.benchmark5;
      by loadport dischargeport year;
   retain ID 0;
   if first.year then ID = ID + 1;
run;
于 2012-11-30T20:35:51.090 に答える
0

これにより、サンプルが示すように ID が得られます。

data data.benchmark6;
 set data.benchmark5;
  if loadport^=lag(loadport) or DischargePort^=lag(DischargePort) then ID+1;
    else ID+0;
 run;
于 2012-11-30T20:12:25.227 に答える