Résumer les colonnes qui contiennent plus d'une valeur uniqueJ'ai un tableau de données et je souhaite résumer les colonnes qui contiennent plusieurs valeurs uniques, y compris les lignes manquantes. Les colonnes avec toutes les lignes identiques sont ennuyeuses et je souhaite uniquement examiner les plus intéressantes.
Automatisation et scriptsRé: Résumer les colonnes qui contiennent plusieurs valeurs uniquesIl existe plusieurs façons de procéder, mais je pense que la plus simple est la suivante :
Allez dans Cols > Gestionnaire de colonnes
Le tableau résultant comportera une colonne avec N éléments uniques qui vous indiquera le nombre d'éléments uniques présents dans chaque colonne. Il comportera également une colonne avec N éléments manquants qui vous indiquera le nombre de valeurs manquantes présentes dans cette colonne.
Malheureusement, N Unique n'est pas calculé automatiquement pour les colonnes continues, mais le menu contextuel rouge offre l'option de forcer le calcul pour toutes les colonnes numériques.
Vous pouvez également utiliser ce tableau pour sélectionner des colonnes contenant une seule valeur unique. Ces colonnes sont ensuite sélectionnées dans le tableau d'origine afin que vous puissiez les masquer et les exclure pour ne pas être obligé de voir ces colonnes « non intéressantes ».
Ré: Résumer les colonnes qui contiennent plusieurs valeurs uniquesJe suis un luddite, mais je crains que JMP17 ne le soit. Merci, je pense pouvoir écrire ce script, je me demandais juste si quelqu'un l'avait déjà déchiffré.
Ré: Résumer les colonnes qui contiennent plusieurs valeurs uniquesJe n'aime pas vraiment la « publicité » pour mes modules complémentaires, mais peut-être qu'Analyse Columns pourrait être utile ? La version publique devrait fonctionner (et fonctionner également avec JMP17)). Un script simple avec une boucle peut également facilement supprimer/exclure/masquer/ou gérer ces colonnes.
Ré: Résumer les colonnes qui contiennent plusieurs valeurs uniquesBel ajout dans Jarmo ! Je dois peaufiner cela, mais cela a l'air génial. Voici le script que j'ai créé pour résumer toute colonne contenant > 1 entrée unique par plaquette.
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" )
);Ré: Résumer les colonnes qui contiennent plusieurs valeurs uniquesJe suggère d'utiliser For Each, Filter Each et Transform Each sur la boucle for la plupart du temps car ils sont plus rapides et plus faciles à lire. Mais ils peuvent être plus ennuyeux à déboguer et à gérer en raison de leur vitesse s'il y a un problème ET qu'ils ont un bug/une fonctionnalité désagréable". Heureusement, ce bug/"fonctionnalité" n'est pas présent dans un cas simple comme celui-ci ( Problème avec les fonctions locales par défaut de Function() et Each ). Je ne sais pas si vous vouliez considérer les valeurs manquantes comme des valeurs "valides", j'ai donc laissé Remove From commenté à l'intérieur de la boucle 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")
);
Voici un script pour créer une table de démonstration 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"}))
);
Ce module complémentaire a été créé avant que JMP n'ait Columns Manager et je le préfère toujours à Columns Manager la plupart du temps. Je suppose qu'ils ont des cas d'utilisation différents et que Columns Manager essaie de remplacer la plate-forme Columns Viewer par des fonctionnalités supplémentaires intéressantes et qu'Analyse Columns s'est inspiré duprofilage pandas (semble être renommé en profilage ydata) car je devais pouvoir vérifier rapidement à quoi ressemblaient mes données en termes de statistiques récapitulatives.