Comment supprimer les lignes qui manquent de données dans toutes les colonnes de mon ensemble de données ?Toutes mes excuses pour la simplicité de ma question, je commence tout juste à utiliser JMP pour la première fois.
J'ai un ensemble de données massif (14 colonnes x 20 000 lignes) et j'essaie d'écrire un script qui identifiera et supprimera toutes les lignes qui n'ont ni 0 ni 1 pour une plage spécifique de colonnes (colonnes 4-14). Cet ensemble de données provient d'un ensemble de données encore plus grand, donc certaines lignes de mon sous-ensemble sont complètement vides. Voici un exemple de ce que j'espérais faire :
- - - - -
0 0 1 - 0
- - - - -
1 - - - -
devient:
0 0 1 - 0
1 - - - -
J'ai commencé à écrire le code, mais je suis bloqué - je ne sais pas quoi faire après For Each Row. J'espérais que ce script regarderait une ligne à la fois, et si une cellule particulière n'avait pas de 0 ou de 1, elle chercherait un 0 ou un 1 dans la colonne suivante, et si elle arrivait à la fin de la ligne sans 0 ni 1, il supprimerait alors toute cette ligne. Voici mon code jusqu'à présent:
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()
)
);je pensais utiliser
<< Delete Rows
, que j'ai vu sur d'autres questions sur ce forum. Si c'est trop compliqué avec un script, y a-t-il une meilleure façon de faire cela ?
Études de consommation et de marchéFusion et nettoyage des donnéesIngénierie de la qualité et des procédésRe : Comment supprimer les lignes qui manquent de données dans toutes les colonnes de mon ensemble de données ?Comme le montrent les réponses précédentes, il existe souvent de nombreuses façons d'effectuer une tâche dans JMP.
Si toutes les colonnes 4 à 14 sont numériques, ce script devrait également fonctionner pour supprimer uniquement les lignes avec des valeurs manquantes.
dt = Current Data Table();
dt << Delete Rows(Loc(Is Missing(V Mean(dt[0, 4 :: 14]`))));
Re : Comment supprimer les lignes qui manquent de données dans toutes les colonnes de mon ensemble de données ?Ce script prendra soin de votre demande. Ce n'est pas tout à fait unique des autres réponses.
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 : Comment supprimer les lignes qui manquent de données dans toutes les colonnes de mon ensemble de données ?ou si vous voulez le scripter, voici ma suggestion:
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 : Comment supprimer les lignes qui manquent de données dans toutes les colonnes de mon ensemble de données ?Je pense que vous devez regarder la plate-forme Missing Data Pattern :
Tables=>Modèle de données manquantes
D'après votre description, il semble que cela répondra à vos besoins.Il analysera les colonnes que vous spécifiez, puis à partir de la table de données qu'il produit, vous pourrez sélectionner les colonnes contenant toutes les valeurs manquantes, puis les supprimer.
Re : Comment supprimer les lignes qui manquent de données dans toutes les colonnes de mon ensemble de données ?Cela doit-il être un script ?
Si vous trouvez une seule ligne qui manque ces cellules spécifiques, sélectionnez les cellules manquantes.
Allez maintenant dans le menu Lignes et sélectionnez Sélection de lignes> Sélectionner les cellules correspondantes.
Maintenant, chaque ligne qui manque de données dans ces colonnes sera sélectionnée. Choisissez Lignes > Supprimer les lignes.
Re : Comment supprimer les lignes qui manquent de données dans toutes les colonnes de mon ensemble de données ?Merci beaucoup - une collection de merveilleux secrets !
- indexation des tables de données
- V Mean() - pour agréger les informations sur les entrées « manquantes »
- Lieu()
- Supprimer les lignes (ligne) **)
**) avec où(dt, est manquant ...)) , c'est des ordres de grandeur plus rapide que :
+ sélectionnez où()