Esiste un modo per creare un array multistrato?CIAO,
1) Sto cercando di creare un array multistrato in cui una chiave ottiene più strati. C'è un modo per farlo? Ad esempio, il mio jsl dovrebbe apparire così:
EX = Array associativo( {"Blu", "Verde", "Rosso"}, {1, 2, 3}, {"Orso", "Geco", "Coniglio"} );
Sto cercando di fare in modo che se seleziono "Blu", ottenga sia 1 che "Orso".
2) Esiste un modo per un array di mappare per una funzione. Ad esempio,
EX = Array associativo( {"Blu", "Verde"}, {funzioneA, funzioneB} );
C'è un modo in cui il valore restituito attiva una funzione? Ho provato e i valori che ottengo sono in termini di stringa, ad esempio se seleziono "Blue", ottengo la stringa "functionA" invece di eseguire functionA.
Modellazione statistica avanzataAutomazione e scriptingEsplorazione e visualizzazione dei datiRe: C'è un modo per creare un array multistrato?Sfortunatamente JMP non offre a cerniera lampo() funzione per gli elenchi, ma puoi facilmente crearne uno come soluzione al tuo primo elemento:
zip = Function( {list a, list b},
{zipped, i},
zipped = {};
Summation( i = 1, Min( Length( list a ), Length( list b ) ),
zipped[i] = Eval List( {list a[i], list b[i]} );
0
);
zipped
);
EX = Associative Array( {"Blue", "Green", "Red"}, zip( {1, 2, 3}, {"Bear", "Gecko", "Rabbit"} ) );
Show( ex )Per il tuo secondo articolo, vedi la funzione Nome Espr() -- dovrebbe fare quello che vuoi.Nota, tuttavia, che a causa delle limitazioni del parser JSL, dovrai prima impostare una variabile temporanea in cui la funzione atterra, quindi chiamare da quella variabile temporanea.
zip = Function( {list a, list b},
{zipped, i},
zipped = {};
Summation( i = 1, Min( Length( list a ), Length( list b ) ),
zipped[i] = Eval List( {list a[i], list b[i]} );
0
);
zipped
);
EX = [=>];
EX["zip"] = Name Expr( zip );
func = ex["zip"];
Show( func( {1, 2, 3}, {"Bear", "Gecko", "Rabbit"} ) )Re: C'è un modo per creare un array multistrato?Solo un altro modo per implementare sarebbe il seguente:
Names Default To Here( 1 );
// nested structure
EX = Associative Array( {"Blue", "Green", "Red"}, {{1, "Bear"}, {2, , "Gecko"}, {3, "Rabbit"}} );
Show( EX["Blue"] );
// Function example
myadd = Function( {op1, op2},
op1 + op2
);
mymult = Function( {op1, op2},
op1 * op2
);
func_aa = Associative Array( {"add", "mult"}, {myadd, mymult} );
myfunc = func_aa["add"];
Show( myfunc( 1, 2 ) );