Scripting > Elenco > Rimuovi valori mancantiCiao Team JMP,
Sto cercando un metodo per rimuovere i valori mancanti/vuoti da un elenco generato all'interno di uno script:
L'elenco iniziale è simile a: {.,.,.,2,3,4,7,.,.,.} e vorrei finire con un nuovo elenco = {2,3,4,7}.
Qualche idea su come ottenerlo senza fare affidamento su un ciclo attraverso gli elementi List?
Grazie.
Migliore,
ST
ScriptingRi: Scripting > Elenco > Rimuovi valori mancantiNel caso non l'avessi già capito.funziona ma restituisce solo una copia.se vuoi modificare x dovresti riassegnarlo o usare removefrom()
Names default to here(1);
x = {.,.,.,2,3,4,7,.,.,.};
new_x = remove(x, as list(loc(x, .)));
show(x, new_x);
removefrom(x, as list(loc(x, .)));
show(x, new_x);Ri: Scripting > Elenco > Rimuovi valori mancantiPuoi fornire uno snippet di codice e il messaggio di errore?
Se la tua lista contiene stringhe di caratteri allora loc non funzionerà - è solo per i numeri.
Ecco una soluzione per un elenco di stringhe con valori vuoti.
a = {"a", "", "b", "", "c", "d", "e"};
b = concat items(a, ";");
c = words(b, ";");
Sfida: qualcuno con una soluzione alternativa?
Ri: Scripting > Elenco > Rimuovi valori mancantiCiao Ryan,
Non so perché, ma la tua sceneggiatura sì non lavora per me... (Ho JMP 16, nel caso in cui possa aiutare a eseguire il debug del problema)
Ri: Scripting > Elenco > Rimuovi valori mancantiAnche,
Names Default to Here( 1 );
original = [.,.,.,2,3,4,7,.,.,.];
none missing = original[Loc( Not( Is Missing( original ) ) )];
Ri: Scripting > Elenco > Rimuovi valori mancantiCiao Ian,
Bel tocco con l'aggiunta di "42" alla lista: stiamo alla larga dal Vogon 
Migliore,
STRi: Scripting > Elenco > Rimuovi valori mancantiIn alternativa:
NamesDefaultToHere(1);
in = {.,.,.,2,3,4,7,.,42,.};
out = in[LocNonMissing(in)];
Print(out);Ri: Scripting > Elenco > Rimuovi valori mancantiCiao @Thierry_S ,
Prova questo,
x = {.,.,.,2,3,4,7,.,.,.};
remove(x, as list(loc(x, .)));