Ciao,
Ho una tabella come quella qui sotto.
ABC...n colonne
1 2 3
7 6 4
3 7 9
.
.
m righe
Voglio scrivere uno script tale che per ogni colonna "Valore dell'ennesima riga = Valore dell'ennesima riga -Valore della prima riga" e alla fine reimpostare la prima riga su 0. Quindi alla fine il mio tavolo dovrebbe apparire così
ABC
0 0 0..
641
256
.
.
Qualcuno potrebbe aiutarmi con uno script per un'operazione del genere? Grazie
Ecco un paio di modi per eseguire il loop... esistono altri modi, ma lascerò che altri li mostrino
Names Default To Here( 1 );
// Open the data table
dt1 = Open( "$SAMPLE_DATA\Blood Pressure.jmp" );
// Create a second copy
dt2 = dt1 << subset( selected columns( 0 ), selected rows( 0 ) );
// Get all numeric, continuous column names
colList = dt1 << get column names( string, numeric, continuous );
// Loop across all numeric, continuous columns and use a
// matrix operation to handle the math
For( i = 1, i <= N Items( colList ), i++,
mat = Column( dt1, colList[i] ) << get values;
mat = mat - mat[1];
Column( dt1, colList[i] ) << set values( mat );
);
// Now do the same thing looping with the data in place
// Loop across all numeric, continuous columns
For( i = 1, i <= N Items( colList ), i++,
// Go through each row, from the bottom to the top to subtract
// the value of the first row from each rows value
For( k = N Rows( dt2 ), k >= 1, k--,
Column( dt2, colList[i] )[k] = Column( dt2, colList[i] )[k] - Column( dt2, colList[i] )[1]
)
);