SAS DI LAG1的替代品?

时间:2017-09-15 13:49:12

标签: sas etl sas-dis

尝试使用SAS中的LAG功能在迁移到SAS DI时复制一段代码,但是在SAS DI中似乎没有相同的功能。 目前使用SAS DI 4.21,以便尽快升级到4.9。

所以我的问题是,是否有另一种方法可以在SAS DI中复制以下代码:

inline-block

干杯,

2 个答案:

答案 0 :(得分:0)

为此,我将使用User Written转换。只要您足够勤奋地执行变量映射,这样做就没有问题 - 因此保留了元数据中的数据沿袭。

可以对here进行解释。

答案 1 :(得分:0)

我不太了解DI Studio转换(我通常只使用User Written转换)。

我想知道是否存在可以欺骗生成的转换:

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;