簡體   English   中英

SAS DI LAG1替代品?

[英]SAS DI LAG1 alternative?

嘗試使用SAS中的LAG功能在遷移到SAS DI中時復制一段代碼,但是SAS DI中似乎根本沒有相同的功能。 當前正在使用SAS DI 4.21,以期盡快升級到4.9。

所以我的問題是,是否有另一種方法可以在SAS DI中復制以下代碼:

DATA work.dm_chg_bal;
SET tmp_bal_chg;
FORMAT dt2 date9.;
acct_id2 = LAG1(acct_id);
app_suf2 = LAG1(app_suf);
dt2 = LAG1(start_dt);
RUN;

干杯,

為此,我將使用用戶書面轉換。 只要您很努力地執行變量映射,就可以做到這一點,因此,這實際上沒有問題,因此可以將數據沿襲保留在元數據中。

對此的解釋在這里

我不太了解DI Studio轉換(我通常僅使用“用戶書面”轉換)。

我想知道是否可以轉換成一個轉換:

data work.dm_chg_bal;
  set tmp_bal_chg;
  output;
  set tmp_bal_chg(rename=(acct_id=acct_id2 app_suf=app_suf2 start_dt=dt2));
run;

要么

data work.dm_chg_bal;
  if _n_ > 1 then set tmp_bal_chg(rename=(acct_id=acct_id2 app_suf=app_suf2 start_dt=dt2));
  set tmp_bal_chg;
run;

如果沒有,我確定可以進行數據轉換,以制作數據集的兩個副本,一個為ID=_n_ ,另一個為ID=_n_+1 ,然后按ID合並。 也就是說,生成:

data main;
  set tmp_bal_chg;
  ID = _n_ ;
run;

data lag;
  set tmp_bal_chg (rename=(acct_id=acct_id2 app_suf=app_suf2 start_dt=dt2));
  ID = _n_ + 1;
run;

data work.dm_chg_bal;
  merge main (in=a)
        lag (keep=id acct_id2 app_suf2 dt2 in=b)
  ; 
  by id;
  if a;
run;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM