Wie bekomme ich die zurückgegebene Variable meiner Funktion, die meiner neuen Variablen zugewiesen wird?Ich habe eine Funktion namens JoinTables erstellt und getestet. Diese Funktion gibt eine Datentabelle zurück. Ich möchte, dass die zurückgegebene Datentabelle der Variablen dtSlopeTable zugewiesen wird.
dtSlopeTable = JoinTables(dataTableList, columnGroup);
Wenn ich dies ausführe, wird die Ausgabetabelle mit dem gewünschten Inhalt erstellt, aber sie ist nicht mit dem Variablennamen "dtSlopeTable" verknüpft.
Wenn ich den Wert von dtSlopeTable überprüfe, heißt es Data Table( "UnknownTable" ).
Ich habe Wait(0) und Wait(10) ausprobiert, aber nichts funktioniert.
Ich kann es jedoch zum Laufen bringen, wenn ich wait (0) verwende und die Zeile davor Folgendes hat:
dtTest = New table();
Dies ist eine seltsame Arbeit, und ich würde es vorziehen, eine saubere Lösung zu verwenden. Haben Sie eine Idee, warum ich die Tabelle nicht dem Variablennamen zuweisen kann?
Wenn Sie die Funktionsdefinition anzeigen müssen, würde ich gerne anhängen.
Danke für die Hilfe.
Betreff: Wie bekomme ich die zurückgegebene Variable meiner Funktion, die meiner neuen Variablen zugewiesen wird?Was an die aufrufende Anweisung zurückgegeben wird, ist das letzte in der Funktion verarbeitete Element, also sollten Sie lediglich das Handle, das Sie die neue Datentabelle aufrufen, als letztes Element platzieren, und es wird es an die aufrufende Variable zurückgeben.Siehe das einfache Beispiel unten
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt2 = New Table( "lookup",
New Column( "Sex", character, values( {"F", "M"} ) ),
New Column( "Avg Height", values( {68, 70} ) )
);
joinTables = Function( {x1, x2, m1},{},
dtFinal = x1 << join( With( x2 ), Merge same name columns(1), Match Columns( Column( m1 ) == Column( m1 ) ) );
dtFinal;
);
dtSlopeTable=joinTables(dt,dt2,"Sex");
show(dtSlopeTable);