Borrado de datos en la selecciónTengo una tabla grande con varias filas y columnas. Quiero borrar algunos datos de la tabla.
Por ejemplo, eliminar datos de la fila 2 hasta la columna no. 10 basado en algunos criterios. Pero, mantenga intactos los datos en la misma fila de la columna 11. El código que tengo es el siguiente:
cdt = Current Data Table();
cdt << select columns( 1 :: 21 );
cdt << select where(Is Missing(:Name("Record no.")));Quiero borrar los datos que han sido seleccionados.
Debe haber una manera simple de hacer esto, pero realmente no sé cómo hacerlo. Puedo hacer clic derecho y seleccionar borrar.
Pero quiero un código de script jsl para que esta tarea pueda automatizarse.
Automatización y secuencias de comandosInvestigación del Consumidor y del MercadoRe: Borrar datos en selecciónMuchas gracias. Realmente aprecio el gran esfuerzo que ha hecho para ayudarme a resolver el problema y comprender qué es realmente JMP. La gente sigue diciendo que JMP no es Excel, pero es muy difícil tener eso en cuenta cuando se pasa de Excel a JMP. Además, jsl hace pensar que JMP tiene una capacidad como la de MATLAB o Python, lo que puede no ser siempre cierto.
No podría estar menos de acuerdo con respecto a la necesidad de capacitarse y educarse en JMP.
Al igual que yo, la mayoría de los que estamos aquí somos personas que comenzaron a usar JMP una vez que comenzaron a trabajar en la industria.
Puede que no sea bueno para aprender, pero a veces pedir soluciones en los foros da resultados más rápidos en lugar de leer todo el
documentación (que es lo correcto). Sus soluciones en el hilo de la comunidad han sido de gran ayuda para mí hasta ahora y estoy muy agradecido por todo ello.
Re: Borrar datos en selecciónHay casos en los que volver a una herramienta con la que ha pasado años, aprender los entresijos, es lo más rápido y correcto.Y Excel es sin duda la principal herramienta de registro cuando se trata de usuarios nuevos en JMP.
En particular, dado que Excel está basado en exCELL y JMP está basado en columnas, JMP no tendrá funciones que se ocupen de cosas como mover algunas celdas en una columna determinada, hacia arriba o hacia abajo en la columna.Eso es porque JMP asume valores de columna en la misma fila, tiene una relación.Excel no tiene tal suposición.Por otro lado, al ser JMP Column Based aprovecha eso en muchas de las funciones, plataformas, etc.En muchos casos, uno hace algo de trabajo extra y logra que haga algunas de las cosas que JMP hace muy fácilmente.Vlookup de Excel es uno de los elementos que requiere mucho más esfuerzo para "buscar" los datos que la plataforma de actualización de JMP.Por el contrario, la tarea sobre la que le preguntó a la comunidad, mover las celdas hacia arriba en una columna, requiere que JMP haga más trabajo para lograrlo.Una cosa que es cierta sobre JMP, sobre Excel, es que JMP es más extenso/complejo, debido a su propósito analítico.Por lo tanto, se necesita más capacitación/educación.Es por eso que verán miembros de la Comunidad, instando a las personas a leer los documentos de la JMP.Son realmente la única forma de comprender realmente lo que se puede hacer con JMP y cómo abordarlo.
A continuación se muestra un script que mueve hacia arriba las filas que no faltan dentro de cada columna.Es solo una de las formas en que puedo imaginar a uno haciendo esto.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt1 = dt << subset(selected rows(0), selected columns(0));
dt1 << set name( "Example 1" );
// randomly clear some data from the different columns
// to have different cells blank or with missing values
For( i = 1, i <= N Cols( dt1 ), i++,
For( k = 1, k <= 5, k++,
If( Column( dt1, i ) << get datatype == "Character",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = "",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = .
)
)
);
// For the example, create a copy of the Example 1 data table to work on,
// so the beginning and modified tables can be viewed
wk1 = dt1 << subset(selected rows(0), selected columns(0));
wk1 << set name("Working 1");
// Remove the missing cells for each column and move up the remaining
// rows to fill in
For(i=1,i<=n cols(wk1),i++,
dtTemp=wk1<<SUBSET></SUBSET>Re: Borrar datos en selecciónActualmente, no tengo idea de cómo se puede hacer. Mi solución a este problema ahora es
exportar la tabla jmp a excel.
cdt << Save("C:\Users\Neal\Desktop\Data entry.xlsx");
Después de exportar a Excel, me deshago de las celdas vacías y vuelvo a colocar los datos en la tabla jmp.
Re: Borrar datos en selección¿Qué has probado?
Re: Borrar datos en selecciónGracias por la solución. Funciona. Pero, tengo otro problema ahora.
Después de eliminar todas las celdas, quiero consolidar los datos. es decir, los datos se desplazarán hacia arriba para tomar
espacio que queda después de eliminar. ¿Hay un código jsl para lograr eso?Re: Borrar datos en selecciónAquí hay una forma alternativa de codificar esto.Maneja un rango numérico de columnas y asume que son columnas de caracteres, por lo que establece sus valores en un espacio en blanco "".
names default to here(1);
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
cdt[rows,4::5]= "";Re: Borrar datos en selecciónSu solución funcionaría para columnas numéricas. Pero, ¿qué pasa con los no numéricos?
Además, en lugar de ir una columna tras otra. ¿No es posible simplemente hacer un rango? ¿Algo así como 1::4?
Re: Borrar datos en selecciónOK, lo siento, leí tu descripción de nuevo:
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
column(cdt,4)[rows] = .;
column(cdt,5)[rows] = .;Re: Borrar datos en selecciónSolo quiero eliminar los contenidos seleccionados. si uso
Delete Rows
eliminará toda la fila. Como dije, no quiero que se elimine toda la fila.
Re: Borrar datos en selección... o tal vez estoy siendo tonto, ¿quieres decir que quieres borrar el contenido de las celdas seleccionadas?
Re: Borrar datos en selecciónCreo que lo que está pidiendo es que una vez que haya seleccionado ciertas filas, ¿cómo las elimina?Puede utilizar las filas de eliminación de mensajes:
dt << delete rows;
Si revisa el índice de secuencias de comandos, verá que solo se eliminan las filas seleccionadas.
Re: Borrar datos en selecciónSu solución es borrar la selección.
Estoy buscando 'borrar': eliminar el contenido de la selección.
Lo siento, no pude explicar claramente.
Re: Borrar datos en selecciónPuedes usar los mensajes borrar selección de columna y borrar seleccionar para columnas y filas respectivamente.
cdt = open("$SAMPLE_DATA/Big Class.jmp");
cdt << select columns(4::5);
cdt << select where(:sex=="F");
wait(2);
cdt << clear column selection;
cdt << clear select;