¿Cómo consigo que la variable devuelta de mi función se asigne a mi nueva variable?He creado y probado una función llamada JoinTables. Esta función devolverá una tabla de datos. Me gustaría que la tabla de datos devuelta se asigne a la variable dtSlopeTable.
dtSlopeTable = JoinTables(dataTableList, columnGroup);
Cuando ejecuto esto, la tabla de salida se crea con el contenido deseado pero no está asociada con el nombre de variable "dtSlopeTable".
Cuando verifico el valor de dtSlopeTable, dice Tabla de datos ("UnknownTable").
He intentado esperar (0) y esperar (10) pero tampoco trabajo.
Sin embargo, puedo hacerlo funcionar si uso wait (0) y la línea anterior tiene:
dtTest = New table();
Este es un trabajo extraño y preferiría usar una solución limpia. ¿Tiene una idea de por qué no puedo asignar la tabla al nombre de la variable?
Si necesita ver la definición de la función, me encantaría adjuntarla.
Gracias por la ayuda.
Re: ¿Cómo consigo que la variable devuelta de mi función se asigne a mi nueva variable?Lo que se devuelve a la declaración de llamada es el último elemento procesado en la función, por lo que todo lo que debe hacer es colocar el identificador que está llamando a la nueva tabla de datos como el último elemento, y lo devolverá a la variable de llamada. Vea el ejemplo simple a continuación
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);