Cara Comunità,
Attualmente sto cercando di automatizzare diverse routine JMP ricorrenti con JSL. Le mie tabelle hanno dopo diverse centinaia di righe di codice ora il modulo che voglio avere e non riesco a JSL su un'analisi bivariata apparentemente semplice 
Ad esempio ho allegato una tabella semplificata. Se fai clic su è:
- X = :giorni, Y = :Lettura, Per = :Classificazione
- => Pulsante di scelta rapida MAIUSC => Raggruppa per :Individui => Pulsante di scelta rapida MAIUSC => Adatta ogni valore
Il codice risultante copiato dall'editor è:
Bivariate(
SendToByGroup( {Is Missing( :Classification )} ),
Y( :Readout ),
X( :Days ),
SendToByGroup(
{Is Missing( :Classification )},
Fit Where(
:Individuals == "Ind7",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind22",
Fit Each Value( {Line Color( {66, 112, 221} )} )
)
),
SendToByGroup(
{:Classification == "A"},
Fit Where(
:Individuals == "Ind2",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind4",
Fit Each Value( {Line Color( {61, 174, 70} )} )
),
Fit Where(
:Individuals == "Ind5",
Fit Each Value( {Line Color( {66, 112, 221} )} )
),
Fit Where(
:Individuals == "Ind6",
Fit Each Value( {Line Color( {204, 121, 41} )} )
),
Fit Where(
:Individuals == "Ind8",
Fit Each Value( {Line Color( {40, 182, 143} )} )
),
Fit Where(
:Individuals == "Ind9",
Fit Each Value( {Line Color( {162, 43, 221} )} )
),
Fit Where(
:Individuals == "Ind12",
Fit Each Value( {Line Color( {196, 189, 43} )} )
),
Fit Where(
:Individuals == "Ind14",
Fit Each Value( {Line Color( {39, 174, 174} )} )
),
Fit Where(
:Individuals == "Ind15",
Fit Each Value( {Line Color( {197, 41, 201} )} )
),
Fit Where(
:Individuals == "Ind24",
Fit Each Value( {Line Color( {142, 176, 40} )} )
),
Fit Where(
:Individuals == "Ind28",
Fit Each Value( {Line Color( {40, 154, 190} )} )
)
),
SendToByGroup(
{:Classification == "B"},
Fit Where(
:Individuals == "Ind1",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind11",
Fit Each Value( {Line Color( {61, 174, 70} )} )
),
Fit Where(
:Individuals == "Ind16",
Fit Each Value( {Line Color( {66, 112, 221} )} )
),
Fit Where(
:Individuals == "Ind17",
Fit Each Value( {Line Color( {204, 121, 41} )} )
),
Fit Where(
:Individuals == "Ind21",
Fit Each Value( {Line Color( {40, 182, 143} )} )
),
Fit Where(
:Individuals == "Ind23",
Fit Each Value( {Line Color( {162, 43, 221} )} )
),
Fit Where(
:Individuals == "Ind25",
Fit Each Value( {Line Color( {196, 189, 43} )} )
),
Fit Where(
:Individuals == "Ind26",
Fit Each Value( {Line Color( {39, 174, 174} )} )
),
Fit Where(
:Individuals == "Ind27",
Fit Each Value( {Line Color( {197, 41, 201} )} )
)
),
SendToByGroup(
{:Classification == "C"},
Fit Where(
:Individuals == "Ind20",
Fit Each Value( {Line Color( {212, 73, 88} )} )
)
),
SendToByGroup(
{:Classification == "D"},
Fit Where(
:Individuals == "Ind3",
Fit Each Value( {Line Color( {212, 73, 88} )} )
),
Fit Where(
:Individuals == "Ind10",
Fit Each Value( {Line Color( {61, 174, 70} )} )
),
Fit Where(
:Individuals == "Ind13",
Fit Each Value( {Line Color( {66, 112, 221} )} )
),
Fit Where(
:Individuals == "Ind18",
Fit Each Value( {Line Color( {204, 121, 41} )} )
),
Fit Where(
:Individuals == "Ind19",
Fit Each Value( {Line Color( {40, 182, 143} )} )
)
),
By( :Classification )
);Il mio problema ora è che questo script se lo codifico in questo modo non funzionerà con i nuovi individui, che verranno aggiunti a questa tabella. E mi rendo anche conto che devo lavorare con liste e un ciclo For() in qualche forma.
Per le liste ho iniziato così:
//Writes only the different individual values of column :Classification into a variable
classlist = dt:"Classification" << Get values;
classvalues = Associative Array(classlist) << Get Keys;
//Writes only the different individual values of column :Individuals into a variable
IDlist = dt:"Individuals" << Get values;
IDvalues = Associative Array(IDlist) << Get Keys;
Ma come ora mi avvicino correttamente al ciclo For(), sfortunatamente non lo so ...
Qualcuno ha qualche idea o può aiutarmi?