Hallo,
Ich habe eine Tabelle wie unten.
ABC ..n Spalten
1 2 3
7 6 4
3 7 9
.
.
m Reihen
Ich möchte ein Skript schreiben, das für jede Spalte „Wert der n-ten Zeile = Wert der n-ten Zeile – Wert der 1. Zeile“ und am Ende die erste Zeile auf 0 zurücksetzt. So sollte mein Tisch am Ende aussehen
ABC
0 0 0..
6 4 1
2 5 6
.
.
Könnte mir jemand mit einem Skript für einen solchen Vorgang helfen? Danke
Hier sind ein paar Möglichkeiten, die Schleife durchzuführen. Es gibt noch mehr Möglichkeiten, aber ich lasse sie anderen zeigen
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]
)
);