Ciao,
Sto provando a scrivere una funzione che si riferisce a una determinata riga di una colonna e cercando di renderla dinamica dove posso eseguirla su qualsiasi nome di colonna. Usando la tabella Big Class come esempio, sto cercando di eseguire il calcolo sulla colonna height ma non riesco a farlo funzionare a meno che non sia codificato nella funzione. Anche la funzione di ritardo non sembra funzionare all'interno di una funzione.
Questo è il copione che ho.
dt = Aperto ( "$ SAMPLE_DATA / Big Class.jmp" );
Row () = 4;
ii = 4 ;
Test = Funzione ({etichetta},
Y = tag [ii] - tag [ii- 1 ]; // questo non funziona
// Y = altezza [ii] - altezza [ii-1]; questo funziona
X = ritardo (etichetta, 1 ); // questo non funziona
// X = lag (altezza, 1); questo funziona
);
Test (altezza)
Grazie in anticipo
Vedi lo script annotato di seguito
t = Open( "$SAMPLE_DATA/Big Class.jmp" );
Row() = 4;
ii = 4;
Test = Function({tag},
Y = column(t,tag)[ii] - column(t,tag)[ii-1]; // this doesn't work
//Y = height[ii] - height[ii-1]; this works
X = lag(column(t,tag)[ii],1); // this doesn't work
//X = lag(height,1); this works
// If you want the calculated values to be returned to a value such as calling the function
// rr = Test("Height")
// uncomment the code below
//YXList = {};
//insert into(YXList,Y);
//insert into(YXList,X);
//return(YXList);
);
// If you specify
// Test(height);
// JMP will look for the value of a variable called height
// You need to pass the column name as a string and have the
// function process it
Test("height")