Hallo JMP-Benutzer,
Ich möchte Spaltennamen aus einer Konfigurationsdatei mithilfe von JSL aktualisieren und Diagramme erstellen, deren Titel und Achsen die aktualisierten Spaltennamen enthalten. Ich suche nach Ideen, wie ich das machen kann.
Ich hänge meinen Code und Tabellen an. Danke für die Hilfe.
Ich habe angehängt, wie das endgültige Diagramm aussehen soll (gewünschte_Bivariate)
-Simon
Names Default To Here( 1 );
dt = Open( "table_1.jmp" );
dt1 = Open( "config_table.jmp" );
dt1 << New Column( "New Column", character, formula( Column_name || "_" || additional_name ) );
graph = dt << Bivariate( Y( :height ), X( :id ) );
Versuche dies:
Names Default To Here( 1 );
dt = Open( "table_1.jmp" );
dt1 = Open( "config_table.jmp" );
for(i = 1, i <= N Rows(dt1), i++,
x = Column(dt1, "Column_name")[i];
y = Column(dt1, "additional_name")[i];
Column(dt, i) << Set Name( x || "_" || y);
);
Hier sind zwei verschiedene Ansätze für das Problem, die den tatsächlichen Namen der Spalten nicht ändern, aber das erreichen, wonach Sie fragen.Die erste erstellt Transformationsspalten, deren neue Namen für die Ausführung der Bivariate angegeben wurden.Diese Spalten sind nur für die bivariate Ausführung vorhanden.

Im zweiten Beispiel wird die Einheitenspalteneigenschaft für die verschiedenen Spalten in der Datentabelle verwendet.Die Plattformen in JMP berücksichtigen die Spalteneigenschaft "Einheiten" und zeigen sie als Ergänzung zum tatsächlichen Spaltennamen an, indem sie den Wert "Einheiten" in () nach dem Spaltennamen platzieren ..... (dh Höhe (Fuß)).

// This version of the script used Transform variables
// to temporarially change the name of the column just
// for the running of the Bivariate
Names Default To Here( 1 );
dt = Data Table( "table_1" );
dt1 = Data Table( "config_table" );
// Loop across the columns to run the Bivariate
For( i = 2, i <= N Cols( dt ), i++,
// Check to see if a column name change is specified
// in the config table
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1
:additional_name != ""
);
// If a column name change is found make the change
If( N Rows( foundRow ) > 0,
Eval(
Substitute(
Expr(
Bivariate(
Y(
Transform Column(
__trans__,
Formula( __col__ )
)
),
X( :id )
)
),
Expr( __trans__ ),
dt1:Column_name[foundRow[1]] || "_" || dt1
:additional_name[foundRow[1]],
Expr( __col__ ),
Parse( ":" || dt1:Column_name[foundRow[1]] )
)
),
// otherwise just run the bivariate
dt << Bivariate( Y( Column( i ) ), X( :id ) )
);
);
// This version of the script takes advantage of the Units
// column property. It will automatically add (unit value) to
// the display output, without actually changing the columns
// name
Names Default To Here( 1 );
dt = Data Table( "table_1" );
dt1 = Data Table( "config_table" );
// Add the Units Column Property to the columns in the
// original data table
For( i = 1, i <= N Cols( dt ), i++,
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1
:additional_name != ""
);
If( N Rows( foundRow ) > 0,
column( dt, i ) << set property("units", eval(dt1:additional_name[foundRow[1]]));
);
);
// Now run the normal bivariates
For( i = 2, i <= N Cols( dt ), i++,
dt << Bivariate( Y( Column( i ) ), X( :id ) )
);