Tarea simple: eliminar columnas vacías<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola foro SAS,
Estoy intentando eliminar todas las columnas de un conjunto de datos que están vacías y no sé cómo hacerlo en JMP9. ¿Puede usted ayudar? Habrá un número variable de pacientes y AA's
Entrada de datos
| Paciente | Muestra
| AA_1 | AA_2 | AA_3 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | Día 1 | | A | | | | C |
| 2234 | Día 11 | | A | | V/M/S | | C |
| 2234 | Día 21 | | A | | | | C |
| 2234 | Día 24 | | A | | | CALLE | C |
Producción
| Paciente | Muestra
| AA_2 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | Día 1 | A | | | C |
| 2234 | Día 11 | A | V/M/S | | C |
| 2234 | Día 21 | A | | | C |
| 2234 | Día 24 | A | | CALLE | C |
Re: Tarea simple: eliminar columnas vacíasSi quieres ver la lista, puedes usar:
Imprimir( listaDelete);
Re: Tarea simple: eliminar columnas vacíasGracias. Ejecuté esto pero no vi la lista, ¿me falta algo?
Re: Tarea simple: eliminar columnas vacíasHola,
Si desea mantener el nombre de la columna vacía en la lista, también puede procesarlo así.
dt = Tabla de datos actual();
iColMax = NCol(dt);
iRowMax = NRow(dt);
nulo = 0;
lstDelete = Lista();
Para (iCol = 1, iCol<=iColMax, iCol++,
nulo = 0;
col = Columna(iCol);
strColName = Columna(iCol) << GetName;
Para (iRow = 1, iRow<=iRowMax, iRow++,
Si (o (está vacío (col [iRow]), falta (col [iRow])),
nulo = nulo + 1;
);
);
Si (nulo == iRowMax, InsertInto(lstDelete, Eval(strColName))
);
);
dt << Eliminar columnas (lstDelete);
Re: Tarea simple: eliminar columnas vacías¡Funciona maravillosamente! Muchas gracias.
Re: Tarea simple: eliminar columnas vacíasAl hacer esto de forma interactiva en JMP, tiendo a utilizar el patrón y el resumen de datos faltantes. Pero para tablas grandes y tareas repetidas, el script JSL es más eficaz.
Esto debería funcionar para eliminar columnas vacías de cualquier tipo de datos.
dt = Tabla de datos actuales () ;
Carolina del Norte = norte col ( dt ) ;
nombres = dt << Obtener nombres de columnas () ;
dt1 = dt << Patrón de datos faltantes ( columnas ( evaluar ( nombres ) ) , invisible ) ;
n° = N fila ( dt1 ) ;
Para ( i = Carolina del Norte , i >= 1 , i --,
Si ( suma colombiana ( Columna ( dt1 , i + 3 ) ) < n° ,
Eliminar de ( nombres , i )
)
) ;
Intentar ( dt << eliminar columnas ( nombres ) ) ;
Cerca ( dt1 , guardar ) ;