Resumir columnas que contienen más de un valor únicoTengo una tabla de datos y quiero resumir las columnas que contienen más de un valor único, incluidas las filas faltantes. Las columnas con todas las filas iguales son aburridas y quiero ver solo las más interesantes.
Automatización y scriptingRe: Resumir columnas que contienen más de un valor únicoHay varias formas de hacerlo, pero creo que la más fácil es la siguiente:
Vaya a Columnas > Administrador de columnas
La tabla resultante tendrá una columna con N elementos únicos que indica cuántos elementos únicos hay en cada columna. También tendrá una columna con N valores faltantes que indica cuántos valores faltantes hay en esa columna.
Lamentablemente, N Unique no se calcula automáticamente para columnas continuas, pero el menú emergente rojo ofrece la opción de Forzar el cálculo para todas las columnas numéricas.
También puede utilizar esa tabla para seleccionar columnas con un único valor. Luego, esas columnas se seleccionan en la tabla original para que pueda ocultarlas y excluirlas y no verse obligado a ver esas columnas "no interesantes".
Re: Resumir columnas que contienen más de un valor únicoSoy un ludista, pero me temo que JMP17. Gracias, creo que puedo crear un script para esto, pero me preguntaba si alguien ya lo había descifrado.
Re: Resumir columnas que contienen más de un valor únicoRealmente no me gusta la "publicidad" de mis complementos, pero ¿quizás Analizar columnas podría ser útil? La versión pública debería funcionar (y también con JMP17). Un script simple con un bucle también puede eliminar/excluir/ocultar fácilmente o cualquier otra cosa que pueda manejar dichas columnas.
Re: Resumir columnas que contienen más de un valor único¡Buen complemento, Jarmo! Tengo que hacer algunos ajustes, pero se ve genial. Este es el script que se me ocurrió para resumir cualquier columna que tenga más de una entrada única por wafer.
dt = Current Data Table();
colList = Current Data Table() << Get Column Names( String );
dcols = {};
For( i = 1, i <= N Items( colList ), i++,
If( Contains( colList[i], " / " ),
Insert Into( dcols, colList[i] )
)
);
Show( dcols );
Split_Cols = {};
Insert Into( Split_Cols, :wafer );
For( j = 1, j <= N Items( dcols ), j++,
summarize(unique_values = by( Column(dcols[j]) ));
if (N Items(unique_values) > 1, Insert Into( Split_Cols, dcols[j] ) );
);
Show(Split_cols);
Current Data Table() << Summary(
Group( Split_cols ),
Freq( "None" ),
Weight( "None" )
);Re: Resumir columnas que contienen más de un valor únicoSugiero usar For Each, Filter Each y Transform Each sobre el bucle for la mayor parte del tiempo, ya que son más rápidos y fáciles de leer. Pero pueden ser más molestos de depurar y tratar debido a su velocidad si hay un problema Y tienen un "error/característica" desagradable". Afortunadamente, ese error/"característica" no está presente en un caso simple como este ( Problema con Function() local predeterminado y funciones Each ). No estoy seguro de si quería considerar los valores faltantes como valores "válidos", así que dejé Remove From comentado dentro del bucle Filter Each
Names Default To Here(1);
dt = Current Data Table();
collist = dt << Get Column Names("String");
valid_cols = Filter Each({colname}, collist,
Summarize(dt, vals = By(Eval(colname)));
//Remove From(vals, Contains(vals, "")); // drop missing values if necessary
N Items(vals) > 1;
);
dt_summary = dt << Summary(
Group(valid_cols),
Freq("None"),
Weight("None"),
//Link to original data table(0),
Output Table("Non-Unique Summary")
);
Aquí hay un script para crear una tabla de demostración simple
dt = New Table("demo",
Compress File When Saved(1),
New Column("Column 1", Character, "Nominal", Set Values({"a", "a", "a", "a"})),
New Column("Column 2", Character, "Nominal", Set Values({"b", "b", "b", ""})),
New Column("Column 3", Character, "Nominal", Set Values({"", "", "", ""})),
New Column("Column 4", Character, "Nominal", Set Values({"c", "d", "", ""})),
New Column("Column 5", Character, "Nominal", Set Values({"c", "d", "e", "f"}))
);
Ese complemento se creó antes de que JMP tuviera el administrador de columnas y aún lo prefiero sobre el administrador de columnas la mayor parte del tiempo. Supongo que tienen diferentes casos de uso y el administrador de columnas intenta reemplazar la plataforma del visor de columnas con algunas características adicionales interesantes y Analyse Columns se inspiró enel perfil de pandas (parece haber cambiado de nombre a perfil de ydata) ya que tenía que poder verificar rápidamente cómo se veían mis datos en términos de estadísticas de resumen.