Ich hoffe, einige meiner Funktionen etwas wiederverwendbarer zu machen. Als Beispiel erstelle ich eine Übersichtstabelle mit bestimmten Spalten aus meinem Datensatz. Ich möchte die Spaltenliste als Argument übergeben, damit ich eine „GetSummary“-Funktion anstelle von „GetExperimentsSummary“ und „GetCompoundsSummary“ habe. Da diese jedoch unterschiedliche Spaltenzahlen benötigen, muss ich in der Lage sein, die Spaltenliste separat zu verpacken (höchstwahrscheinlich in meiner Klassendefinition) und sie dann als ein Argument an die Funktion zu übergeben. Ist dies in JSL möglich? Wie wäre die Syntax? Beispiele für meine „Get Experiments“- und „Get Compounds“-Funktionen finden Sie weiter unten. Ich verwende JMP18.
//Get Experiments function
getexperimentssummary = function ({},
original_data << Summary(
Group(
:ExperimentID, :Read Date, :Experiment Type, :Plate Size, :Plate Type,
:Dispense Mode, :Probook Number, :Probook Page Number, :Experiment Notes
),
Freq( "None" ),
Weight( "None" ),
output table name("Experiment_summary")
);
experiment_summary = Data Table ("Experiment_summary");
experiment_id = "ExperimentID";
);
//Get Compounds Summary
getcompoundssummary = Function( {},
original_data << Summary(
Group(
:CompoundID, :Compound, :Compound Lot Number, :Compound Supplier, :Compound Catalog Number
),
Freq( "None" ),
Weight( "None" ),
output table name("Compound_summary")
);
compound_summary = Data Table ("Compound_summary");
Compound_ID = "CompoundID";
);
Suchen Sie nach so etwas?
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
get_summary = function({dt, collist}, {Default Local},
dt_summary = dt << Summary(
Group(Eval(collist)),
Freq("None"),
Weight("None"),
Link to original data table(0),
output table name((dt << get name) ||" Summary")
);
return(dt_summary);
);
dt_summary1 = get_summary(dt, {"sex"});
dt_summary2 = get_summary(dt, {"sex", "age"});