- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Pouvez-vous rechercher des formules de colonnes ?
J'ai un tableau de données avec quelques centaines de colonnes. J'aimerais pouvoir rechercher dans toutes les formules de colonnes pour voir si une colonne particulière est utilisée dans l'une des formules de colonnes. Est-ce possible?
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Oui......
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "/C:/Program Files/JMP/JMPPRO/19/Samples/Data/Big Class.jmp" );
dt << new column("Ratio", formula(:height/:weight));
theFormula = Char(dt:Ratio << get formula);
If( contains(theFormula, "height"), show("found it"));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Ohhhh... C'est cool. Je ne savais pas qu'on pouvait coller une colonne dans l'éditeur de script.
Je pense que cela fonctionnera.
Merci!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Semblable à la suggestion de @jthi de copier le script de chaque colonne, vous pouvez copier le script de la table entière sans les données en utilisant le triangle rouge (en haut à gauche de la table) > Copier le script de la table (pas de données).
Le script contiendra le jsl pour recréer votre table, qui inclura toutes vos formules de colonnes. Collez ce script dans une fenêtre de script et effectuez une recherche à partir de là.
J'espère que ça aide!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Oui......
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "/C:/Program Files/JMP/JMPPRO/19/Samples/Data/Big Class.jmp" );
dt << new column("Ratio", formula(:height/:weight));
theFormula = Char(dt:Ratio << get formula);
If( contains(theFormula, "height"), show("found it"));
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Jim,
Merci pour cela. Étant donné que je suis vraiment mauvais en matière de scripts à ce stade, pourriez-vous me montrer comment faire en sorte que votre algorithme parcoure toutes les colonnes d'une table de données et génère une liste de colonnes contenant la valeur cible ?
Jarmo,
Malheureusement, je n'ai pas JMP Pro. Pour une raison quelconque, le message d'erreur que je reçois lorsque j'essaie de supprimer la colonne ne répertorie pas la colonne contenant la formule. Je ne sais pas pourquoi. J'ai également pensé que le dictionnaire de données pourrait peut-être aider, mais je ne voyais pas comment une fois que je l'avais regardé. Merci pour l'aide cependant.
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
J'ai également partagé une option supplémentaire qui ne dépend pas de JMP Pro
Vous pouvez sélectionner les colonnes de formule, sélectionner les colonnes de copie, ouvrir un nouveau script (ctrl + t) et y coller. Recherchez ensuite dans l'éditeur de script.
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Ohhhh... C'est cool. Je ne savais pas qu'on pouvait coller une colonne dans l'éditeur de script.
Je pense que cela fonctionnera.
Merci!
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Si vous avez accès à JMP Pro, vous pouvez le faire avec Formula Depot.
Vous pouvez sélectionner les colonnes de formule, sélectionner les colonnes de copie, ouvrir un nouveau script (ctrl + t) et y coller. Recherchez ensuite dans l'éditeur de script.
Vous pouvez également essayer de supprimer cette colonne et si elle est utilisée, JMP affichera un avertissement comme
Modifier:
Il pourrait également y avoir un moyen d'utiliser le gestionnaire de colonnes dans JMP18, mais je pourrais en trouver un. Le dictionnaire de données peut presque le faire, mais il stocke les formules sous forme d'images afin qu'elles ne puissent pas être recherchées facilement.
Et bien sûr, il existe de nombreuses options de script pur
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Semblable à la suggestion de @jthi de copier le script de chaque colonne, vous pouvez copier le script de la table entière sans les données en utilisant le triangle rouge (en haut à gauche de la table) > Copier le script de la table (pas de données).
Le script contiendra le jsl pour recréer votre table, qui inclura toutes vos formules de colonnes. Collez ce script dans une fenêtre de script et effectuez une recherche à partir de là.
J'espère que ça aide!
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
@julian peut-être que ce type de recherche pourrait être implémenté dans Column Manager dans une certaine mesure ? Nous pourrions donc également rechercher les valeurs dans les propriétés de colonne au lieu de simplement filtrer celles qui ont des propriétés spécifiques. Au moins, les noms de colonnes Formule, Notes et Court/Long sont quelques propriétés de colonne qui pourraient éventuellement bénéficier d'une recherche.
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re : Pouvez-vous rechercher des formules de colonnes ?
J'ai commencé avec l'idée de @julian d'utiliser le script de table et j'ai ajouté quelques fonctions à
- rechercher des colonnes dans les formules et
- pour afficher les résultats de la recherche :
//Open( "$SAMPLE_DATA/Ship Damage.jmp" );
// get all column formulas via the table script
dt = Current Data Table();
dt << copy table script( "No Data" );
script = Parse( Get Clipboard() );
//convert to List for easier indexing
Substitute Into( script, Expr( New Table() ), Expr( {} ) );
// just keep the columns
allCols = Filter Each( {col}, script, Head( col ) == Expr( New Column() ) );
// convert column info into lists
ColList = Transform Each( {col}, allCols, Substitute( Name Expr( col ), Expr( New Column() ), Expr( {} ) ) );
allColNames = Transform Each( {col}, ColList, tmp = Arg( col, 1 ); If (is string(tmp), tmp, tmp["en"]) );
// keep columns with formulas
ColsWithFormulas = Filter Each( {col}, ColList,Try(col["Formula"]; 1 , 0 ));
ColNames = Transform Each( {col}, ColsWithFormulas, tmp = Arg( col, 1 ); If (is string(tmp), tmp, tmp["en"]) );
ColFormulas = Transform Each( {col}, ColsWithFormulas, col["Formula"] );
// helper function to search for column names in formulas
ContainsExpr = Function( {expression, pattern},
tmp = Substitute( Name Expr( expression ), Name Expr( pattern ), Expr( . ) );
Not( Name Expr( tmp ) == Name Expr( expression ) );
);
summary = New Table("Formuala Overview",
New Column( "column Formula", Character ),
New Column( "used cols", Character ),
);
wait(0);
// fill the summary tale with all combinations of formulas and the used columns
Current Data Table( dt ); // make dt the current data table, otherwise won't work !
For Each( {myFormula, idx1}, ColFormulas,
For Each( {col}, allColNames,
formulaCol = ColNames[idx1];
dt:formulaCol << Set Header Text Color( "Red" );
If( ContainsExpr( Name Expr( myFormula ), Name Expr( As Column( col ) ) ),
Eval( Eval Expr( summary << add row( {"column Formula"n =Expr(formulaCol ), "used cols"n = Expr( col )} ) ) );
Column(col) << Set Header Background Color( {102, 255, 140} );
)
)
);
// show a tabulate for easy look up
summary << Tabulate(
Show Control Panel( 0 ),
Add Table( Row Table( Grouping Columns( :column Formula, :used cols ) ) ),
Local Data Filter( Mode( Show( 0 ) ), Add Filter( columns( :column Formula, :used cols ) ) )
);
Ce message écrit à l'origine en English (US) a été traduit pour votre commodité. Lorsque vous répondez, il sera également traduit en English (US).