Ho appena eseguito l'aggiornamento a JMP 13 e molti script personalizzati hanno smesso di funzionare. Ho fatto risalire il problema a un cambiamento nel modo in cui gli elenchi gestiscono il risultato di una query loc. Il codice seguente restituiva "pera" in JMP 12 ma ora restituisce {"pera"}.
mylist = {"apple","pear"};
mychoice = "pear";
showchoice = mylist[loc(mylist, mychoice)];Stavo usando la sintassi list[loc()] per creare stringhe separate da virgole SQL per eseguire procedure memorizzate.
Il nuovo comportamento è logico se inaspettato. Purtroppo Loc() non accetterà ancora un argomento di elenco come valore di ricerca: sarebbe stato un risultato vantaggioso. Come consiglieresti per ottenere il risultato desiderato:
- convertire il risultato Loc() in un numero?
- sostituire showchoice con showchoice[1] nel mio codice?
- altro?
Potrei convertire il mio elenco di scelte in una stringa e rimuovere { & } & \!". Questo non funzionerà sempre poiché l'elenco di testo che mostro all'utente non è sempre uguale all'elenco da cui viene selezionata la chiave corrispondente per la richiesta SQL.
Questo è un po' come l'overfitting con modelli predittivi. Il tuo codice è sintonizzato su come funziona effettivamente JMP rispetto a come dovrebbe funzionare. Il che va bene, fino alla prossima versione 
penso che Loc() dovrebbe prendere una matrice e restituire la posizione degli elementi veri (diversi da zero).
Contiene (lista, elemento) funziona con gli elenchi e restituisce la posizione dell'elemento di destinazione.