Voici un script qui peut être utilisé pour créer plusieurs colonnes lag de variables dans une table de données. Cela peut être utile si vos données sont faussées dans le temps. Par exemple, si les données du capteur sont capturées dans le temps et que les données de votre tableau sont classées par ordre chronologique, les données correspondant à un lot ou à un produit peuvent être réparties sur plusieurs lignes. Le script vous permettra d’aligner facilement les données pour analyse.
Names Default To Here(1);
dt=current data table();
/* Query the user for a column roles. */
cdlg = Column Dialog(
ycol = ColList( "Y", MinCol( 1 ), MaxCol( ), Data Type("Numeric"),Modeling Type("Continuous") ),
Line Up( 2,
"Start Lag", slag = Edit Number( 32 )),
Line Up( 2,
"End Lag", elag = Edit Number( 38 ))
);
If( cdlg["Button"] == -1, Throw( "User cancelled" ) );
Remove From( cdlg ); Eval List( cdlg );
range=elag-slag;
If( range <= 0, Throw( "Bad Range" ) );
/* Unload the values from the Column Dialog */
my_collist = cdlg["ycol"];
/*Number of columns chosen*/
numcols=N Items(my_collist);
for(i=1,i<=numcols,i++,
for(j=slag,j<=elag,j++,
newcol=dt << New Column( Char(my_collist[i]) ||" Lag "||Char(j));
newVals = (J(j,1,.) |/ (Column(dt,my_collist[i]) << Get Values))[1::N Row(dt)];
newcol<<SET values=""></SET>