J'espère pouvoir rendre certaines de mes fonctions un peu plus réutilisables à titre d'exemple. Je crée un tableau récapitulatif avec des colonnes spécifiques de mon ensemble de données. Je voudrais passer la liste des colonnes en tant qu'argument pour me permettre d'avoir une fonction "GetSummary" plutôt qu'un "GetExperimentsSummary" et un "GetCompoundsSummary", mais comme ceux-ci nécessitent un nombre différent de colonnes, je dois pouvoir empaqueter la liste des colonnes séparément (très probablement dans ma définition de classe) puis les passer à la fonction en tant qu'argument unique. Est-ce possible en jsl ? Quelle serait la syntaxe ? Exemples de mes expériences get et get compounds ci-dessous, et je suis sur 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";
);
Vous cherchez quelque chose comme ça ?
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"});