Hola,
Tengo una tabla como la siguiente.
ABC ..n columnas
1 2 3
7 6 4
3 7 9
.
.
m filas
Quiero escribir un script tal que para cada columna "Valor de la fila n = Valor de la fila n - Valor de la fila 1" y al final restablezca la primera fila a 0. Entonces, al final, mi mesa debería verse como
A B C
0 0 0..
6 4 1
2 5 6
.
.
¿Alguien podría ayudarme con un script para tal operación? Gracias
Aquí hay un par de formas de hacer el bucle... existen más formas, pero dejaré que otros las muestren
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]
)
);