¿Cómo elimino filas a las que les faltan datos en todas las columnas de mi conjunto de datos?Disculpas por lo básica que es mi pregunta, estoy empezando a usar JMP por primera vez.
Tengo un conjunto de datos masivo (14 columnas x 20 000 filas) y estoy tratando de escribir un script que identifique y elimine todas las filas que no tengan un 0 o un 1 para un rango específico de columnas (columnas 4-14). Este conjunto de datos proviene de un conjunto de datos aún más grande, por lo que hay algunas filas en mi subconjunto que están completamente vacías. Aquí hay un ejemplo de lo que esperaba hacer:
- - - - -
0 0 1 - 0
- - - - -
1 - - - -
se convierte en:
0 0 1 - 0
1 - - - -
Empecé a escribir el código, pero estoy atascado: no estoy seguro de qué hacer después de For Each Row. Esperaba que este script mirara una fila a la vez, y si una celda en particular no tuviera un 0 o un 1, buscaría un 0 o un 1 en la siguiente columna, y si llegara al final. de la fila sin 0 ni 1, entonces eliminaría toda la fila. Aquí está mi código hasta ahora:
dt=Open("File Name")
colnames = dt << get column names( numeric,string );
For( i = 4, i <= N Items( colnames ), i++,
For Each Row(If(:colnames != 0 | :colnames != 1), Continue()
)
);estaba pensando en usar
<< Delete Rows
, que he visto en algunas otras preguntas en este foro. Si esto es demasiado complicado con un script, ¿hay una mejor manera de hacerlo?
Investigación del Consumidor y del MercadoFusión y limpieza de datosIngeniería de Calidad y ProcesosRe: ¿Cómo elimino filas a las que les faltan datos en todas las columnas de mi conjunto de datos?Como se muestra en las respuestas anteriores, a menudo hay muchas formas de realizar una tarea en JMP.
Si todas las columnas 4-14 son numéricas, esta secuencia de comandos también debería funcionar para eliminar filas solo con valores faltantes.
dt = Current Data Table();
dt << Delete Rows(Loc(Is Missing(V Mean(dt[0, 4 :: 14]`))));
Re: ¿Cómo elimino filas a las que les faltan datos en todas las columnas de mi conjunto de datos?Este script se encargará de su solicitud. No es del todo único de las otras respuestas.
Names Default to Here( 1 );
// get reference to target data table
dt = Current Data Table();
// get all the columns for missing value check
cols = dt << Get Column Names;
// obtain missing value patterns
missing = Current Data Table() << Missing Data Pattern(
Columns( Eval( cols ) ),
Output Table( "Missing Data Pattern" )
);
// make character string representing missing values in all columns
n missing = N Items( cols );
all missing = Repeat( "1", n missing );
// find the row of patterns where all columns are missing.
missing << Select Where( :Patterns == all missing );
// delete the linked rows in the original table
dt << Delete Rows;
// clean up
Close( missing, No Save );
Re: ¿Cómo elimino filas a las que les faltan datos en todas las columnas de mi conjunto de datos?o si quieres escribirlo, esta es mi sugerencia:
dt << New Column("Selected", Character, Nominal, Formula(
If(Is Missing(:Column4) | Is Missing(:Column5)|...until column14,
"Yes",
"No"
)
));
dt << Select Where(:Selected == "Yes");
dt << Delete Rows;Re: ¿Cómo elimino filas a las que les faltan datos en todas las columnas de mi conjunto de datos?Creo que debes mirar la plataforma Missing Data Pattern:
Tablas=>Patrón de datos faltantes
Según su descripción, parece que satisfará sus necesidades.Analizará las columnas que especifique y luego, desde la tabla de datos que produce, puede seleccionar las columnas con todos los valores faltantes y luego eliminarlos.
Re: ¿Cómo elimino filas a las que les faltan datos en todas las columnas de mi conjunto de datos?¿Esto tiene que ser un guión?
Si encuentra solo una fila a la que le faltan esas celdas específicas, seleccione las celdas que faltan.
Ahora vaya al menú Filas y seleccione Selección de fila > Seleccionar celdas coincidentes.
Ahora se seleccionarán todas las filas a las que les falten datos en esas columnas. Elija Filas > Eliminar filas.
Re: ¿Cómo elimino filas que tienen datos faltantes en todas las columnas de mi conjunto de datos?Muchas gracias - ¡una colección de secretos maravillosos!
- indexación de tablas de datos
- V Mean() - para agregar la información sobre las entradas "faltantes"
- Lugar()
- Eliminar filas (fila) **)
**) junto con where(dt, falta ...)) , es órdenes de magnitud más rápido que:
+ seleccionar dónde()