- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Können Sie Spaltenformeln durchsuchen?
Ich habe eine Datentabelle mit mehreren hundert Spalten. Ich möchte alle Spaltenformeln durchsuchen können, um zu sehen, ob eine bestimmte Spalte in einer der Spaltenformeln verwendet wird. Ist das möglich?
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Ja......
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
Betreff: Können Spaltenformeln durchsucht werden?
Ohhhh ... Das ist cool. Ich wusste nicht, dass man eine Spalte in den Skripteditor einfügen kann.
Ich denke, das wird funktionieren.
Danke!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Ähnlich wie bei @jthis Vorschlag, das Skript jeder Spalte zu kopieren, können Sie das Skript der gesamten Tabelle ohne die Daten kopieren, indem Sie auf das rote Dreieck (oben links in der Tabelle) > Tabellenskript kopieren (keine Daten) klicken.
Das Skript enthält das JSL zum Neuerstellen Ihrer Tabelle, das alle Ihre Spaltenformeln enthält. Fügen Sie das Skript in ein Skriptfenster ein und starten Sie die Suche von dort aus.
Ich hoffe das hilft!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Ja......
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"));
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Jim,
Danke dafür. Da ich im Scripting derzeit wirklich schlecht bin, könnten Sie mir zeigen, wie ich Ihren Algorithmus alle Spalten einer Datentabelle durchlaufen lassen und eine Liste der Spalten ausgeben kann, die den Zielwert enthalten?
Jarmo,
Leider habe ich kein JMP Pro. Aus irgendeinem Grund wird in der Fehlermeldung, die ich beim Versuch, die Spalte zu löschen, erhalte, die Spalte mit der Formel nicht aufgeführt. Ich weiß nicht, warum. Ich dachte auch, dass das Datenwörterbuch helfen könnte, aber als ich es mir angeschaut habe, konnte ich nicht erkennen, wie. Trotzdem danke für die Hilfe.
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Ich habe auch eine weitere Option geteilt, die nicht von JMP Pro abhängig ist
Sie können die Formelspalten auswählen, Spalten kopieren auswählen, ein neues Skript öffnen (Strg + T) und dort einfügen. Suchen Sie dann im Skripteditor.
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Ohhhh ... Das ist cool. Ich wusste nicht, dass man eine Spalte in den Skripteditor einfügen kann.
Ich denke, das wird funktionieren.
Danke!
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Wenn Sie Zugriff auf JMP Pro haben, können Sie dies mit Formula Depot tun.
Sie können die Formelspalten auswählen, Spalten kopieren auswählen, ein neues Skript öffnen (Strg + T) und dort einfügen. Suchen Sie dann im Skripteditor.
Sie können auch versuchen, diese Spalte zu entfernen. Wenn sie verwendet wird, zeigt JMP eine Warnung wie diese an.
Bearbeiten:
Es könnte auch eine Möglichkeit in JMP18 geben, den Columns Manager zu verwenden, aber ich könnte mir eine ausdenken. Data Dictionary kann das fast, aber es speichert die Formeln als Bilder, sodass sie nicht einfach durchsucht werden können
Und natürlich gibt es jede Menge reine Scripting-Optionen
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Ähnlich wie bei @jthis Vorschlag, das Skript jeder Spalte zu kopieren, können Sie das Skript der gesamten Tabelle ohne die Daten kopieren, indem Sie auf das rote Dreieck (oben links in der Tabelle) > Tabellenskript kopieren (keine Daten) klicken.
Das Skript enthält das JSL zum Neuerstellen Ihrer Tabelle, das alle Ihre Spaltenformeln enthält. Fügen Sie das Skript in ein Skriptfenster ein und starten Sie die Suche von dort aus.
Ich hoffe das hilft!
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
@julian, vielleicht könnte diese Art der Suche in irgendeiner Form in den Spaltenmanager implementiert werden? So könnten wir auch nach den Werten in den Spalteneigenschaften suchen, anstatt nur nach denen mit bestimmten Eigenschaften zu filtern. Zumindest Formel, Notizen und kurze/lange Spaltennamen sind einige Spalteneigenschaften, bei denen es möglicherweise von Vorteil wäre, wenn wir danach suchen könnten.
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Betreff: Können Spaltenformeln durchsucht werden?
Ich habe mit @julians Idee angefangen, das Tabellenskript zu verwenden und einige Funktionen hinzugefügt, um
- Suche nach Spalten in den Formeln und
- um die Suchergebnisse anzuzeigen:
//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 ) ) )
);
Dieser Beitrag wurde ursprünglich in English (US) geschrieben und wurde zu Ihrer Bequemlichkeit übersetzt. Wenn Sie antworten, wird es auch in English (US) übersetzt.