Scripting > Lista > Quitar valores faltantesHola equipo JMP,
Estoy buscando un método para eliminar los valores faltantes/vacíos de una Lista generada dentro de un script:
La Lista inicial se parece a: {.,.,.,2,3,4,7,.,.,.} y me gustaría terminar con una nueva Lista = {2,3,4,7}.
¿Alguna idea de cómo lograr eso sin depender de un bucle a través de los elementos de la Lista?
Gracias.
Mejor,
TS
secuencias de comandosRe: Scripting > Lista > Eliminar valores faltantesPor si aún no te has dado cuenta.funciona pero solo devuelve una copia.si desea modificar x, debe reasignarlo o usar 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);Re: Scripting > Lista > Eliminar valores faltantes¿Puede proporcionar un fragmento de código y el mensaje de error?
Si su lista contiene cadenas de caracteres, loc no funcionará, es solo para números.
Aquí hay una solución para una lista de cadenas con valores vacíos.
a = {"a", "", "b", "", "c", "d", "e"};
b = concat items(a, ";");
c = words(b, ";");
Desafío: ¿alguien tiene una solución alternativa?
Re: Scripting > Lista > Eliminar valores faltantesHola Ryan,
No sé por qué, pero tu guión sí. no trabaja para mi... (Tengo JMP 16, en caso de que pueda ayudar a depurar el problema)
Re: Scripting > Lista > Eliminar valores faltantesTambién,
Names Default to Here( 1 );
original = [.,.,.,2,3,4,7,.,.,.];
none missing = original[Loc( Not( Is Missing( original ) ) )];
Re: Scripting > Lista > Eliminar valores faltantesHola, Ian,
Buen toque al agregar "42" a la lista: mantengámonos alejados del Vogon;)
Mejor,
TSRe: Scripting > Lista > Eliminar valores faltantesAlternativamente:
NamesDefaultToHere(1);
in = {.,.,.,2,3,4,7,.,42,.};
out = in[LocNonMissing(in)];
Print(out);Re: Scripting > Lista > Eliminar valores faltantesHola @Thierry_S ,
Prueba esto,
x = {.,.,.,2,3,4,7,.,.,.};
remove(x, as list(loc(x, .)));