Comment filtrer/nettoyer les données JMP à l'aide d'une liste [tipp, JSL, scripting]Après avoir reçu tant de soutien, j'ai pensé qu'il était temps que je rende cette faveur. Vous trouverez ci-dessous un petit programme qui pourrait faciliter le filtrage des tables de données. L'encodage dur par "entrée" est un moyen de filtrer les entrées ; c'est fastidieux et sujet aux fautes de frappe. Une alternative consiste à filtrer les entrées par leur "position" dans une liste de filtres. Cette approche suppose simplement que la séquence des champs dans la liste de filtres ne change pas. Pour vous en assurer, vérifiez simplement le journal JMP. En tant que contrôle de qualité, je Il vous indiquera quelles entrées ont été exclues .
Bonne chance
Débutant2Jumpie
names default to here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
NAME_LIST = dt:NAME << get values ;
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
remove from(NAME_LIST, {1,3,5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where(contains(NAME_LIST, :NAME)) ;
dt_2 = dt << subset(selected rows(1), all columns);
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
close (dt, nosave) ;
Re : Comment filtrer/nettoyer les données JMP à l'aide d'une liste [tipp, JSL, scripting] - Comment faire pour que ça marche pour les doublons ?Voici une façon de le faire.La seule complexité est de convertir la matrice des numéros de lignes en une liste
Names Default To Here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
eval(parse("NAME_LIST =as list (" || char(index(1,n rows(dt))) || ")[1];"));
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
Remove From( NAME_LIST, {1, 3, 5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where( Contains( NAME_LIST, Row() ) );
dt_2 = dt << subset( selected rows( 1 ), all columns );
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
Close( dt, nosave );Re : Comment filtrer/nettoyer les données JMP à l'aide d'une liste [tipp, JSL, scripting] - Comment faire pour que ça marche pour les doublons ?
Salut tout le monde,
Vendredi dernier, j'ai fourni un petit JMP qui permet de filtrer les données en fonction de leur "position" dans une liste de filtres.
Dans un PM, j'ai reçu un message indiquant que cela ne fonctionne que tant que les entrées analysées pour la liste de filtres sont uniques. Par exemple, si toutes les entrées filtrées à partir de NAME sont uniques, par exemple si vous voulez filtrer "Katie" ; "Jane" ou "Lillie".Désormais, "Robert" apparaît deux fois dans "BIG CLASS". Dès que vous souhaitez également exclure "Robert", cette approche reste bloquée. Une idée de comment résoudre ça?
Débutant2Jumpie
names default to here( 1 );
// Open a sample data table
dt = Open( "$SAMPLE_DATA/big class.jmp" );
/* Get entries/levels from Column NAME and store them in NAME_LIST */
NAME_LIST = dt:NAME << get values ;
NAME_LIST ;
/* Remove selected entries ("levels") on given position in list = JMP table */
remove from(NAME_LIST, {1,3,5} ); /* {removes: "KATIE", "JANE", "LILLIE" */
/* Cleans data by removing rows using level list */
dt << Select where(contains(NAME_LIST, :NAME)) ;
dt_2 = dt << subset(selected rows(1), all columns);
/* Results in a subset without the levels "KATIE", "JANE", "LILLIE" */
close (dt, nosave) ;