Tâche simple : supprimer les colonnes vides<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour forum SAS,
J'essaie de supprimer toutes les colonnes d'un ensemble de données qui sont vides et je n'arrive pas à comprendre comment procéder dans JMP9. Pouvez-vous aider ? Il y aura un nombre variable de patients et d'AA
Entrée de données
| Patient | Échantillon
| AA_1 | AA_2 | AA_3 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | Jour 1 | | UN | | | | C |
| 2234 | Jour 11 | | UN | | V/M/S | | C |
| 2234 | Jour 21 | | UN | | | | C |
| 2234 | Jour 24 | | UN | | | ST | C |
Sortir
| Patient | Échantillon
| AA_2 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | Jour 1 | UN | | | C |
| 2234 | Jour 11 | UN | V/M/S | | C |
| 2234 | Jour 21 | UN | | | C |
| 2234 | Jour 24 | UN | | ST | C |
Re : Tâche simple - supprimer les colonnes videsSi vous voulez voir la liste, vous pouvez simplement utiliser :
Imprimer( lstSupprimer);
Re : Tâche simple - supprimer les colonnes videsMerci. J'ai exécuté ceci mais je n'ai pas vu la liste, est-ce que j'ai raté quelque chose ?
Re : Tâche simple - supprimer les colonnes videsBonjour,
Si vous souhaitez conserver le nom de la colonne vide dans la liste, vous pouvez également procéder comme ceci.
dt = Table de données actuelle ();
iColMax = NCol(dt);
iRowMax = NRow(dt);
nul = 0 ;
lstDelete = Liste();
Pour (iCol = 1, iCol<=iColMax, iCol++,
nul = 0 ;
col = Colonne(iCol);
strColName = Colonne(iCol) << GetName;
Pour (iRow = 1, iRow<=iRowMax, iRow++,
Si (Ou (IsEmpty(col[iRow]),IsMissing(col[iRow])),
nul = nul + 1 ;
);
);
Si (null == iRowMax, InsertInto(lstDelete, Eval(strColName))
);
);
dt << Supprimer les colonnes (lstDelete);
Re : Tâche simple - supprimer les colonnes videsFonctionne à merveille ! Merci beaucoup.
Re : Tâche simple - supprimer les colonnes videsLorsque je fais cela de manière interactive dans JMP, j'ai tendance à utiliser un modèle et un résumé de données manquantes. Mais pour les grandes tables et les tâches répétées, le script JSL est plus efficace.
Cela devrait fonctionner pour supprimer les colonnes vides de tout type de données.
dt = Tableau de données actuel () ;
NC = Col N ( dt ) ;
des noms = dt << Obtenir les noms de colonnes () ;
dt1 = dt << Modèle de données manquantes ( Colonnes ( Évaluer ( des noms ) ) , invisible ) ;
n° = N rangée ( dt1 ) ;
Pour ( je = NC , je >= 1 , je --,
Si ( Col Somme ( Colonne ( dt1 , je + 3 ) ) < n° ,
Retirer ( des noms , je )
)
) ;
Essayer ( dt << supprimer des colonnes ( des noms ) ) ;
Fermer ( dt1 , nosave ) ;