- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Puoi cercare formule di colonna?
Ho una tabella dati con un paio di centinaia di colonne. Mi piacerebbe poter cercare tra tutte le formule di colonna per vedere se una colonna particolare viene utilizzata in una qualsiasi delle formule di colonna. È possibile?
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
SÌ......
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
Ri: È possibile cercare formule di colonna?
Ohhhh... Che bello. Non sapevo che potevi incollare una colonna nell'editor di script.
Penso che funzionerà.
Grazie!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Similmente al suggerimento di @jthi di copiare lo script di ogni colonna, puoi copiare lo script dell'intera tabella senza i dati utilizzando il triangolo rosso (in alto a sinistra della tabella) > Copia script tabella (nessun dato).
Lo script conterrà il jsl per ricreare la tua tabella, che includerà tutte le formule delle tue colonne. Incolla lo script in una finestra di script ed esegui la ricerca da lì.
Spero che aiuti!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
SÌ......
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"));
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Jim,
Grazie per questo. Dato che a questo punto sono davvero scarso nello scripting, potresti mostrarmi come posso fare in modo che il tuo algoritmo esegua il loop di tutte le colonne in una tabella di dati e generi un elenco di colonne che contengono il valore target?
Jarmo,
Sfortunatamente non ho JMP Pro. Per qualche motivo, il messaggio di errore che ricevo quando provo a eliminare la colonna non elenca la colonna contenente la formula. Non so perché. Ho anche pensato che il dizionario dei dati potesse essere d'aiuto, ma non sono riuscito a capire come una volta che l'ho guardato. Grazie per l'assistenza comunque.
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Ho anche condiviso un'altra opzione che non dipende da JMP Pro
Puoi selezionare le colonne della formula, selezionare le colonne di copia, aprire un nuovo script (ctrl + t) e incollarlo lì. Quindi cerca nell'editor di script.
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Ohhhh... Che bello. Non sapevo che potevi incollare una colonna nell'editor di script.
Penso che funzionerà.
Grazie!
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Se hai accesso a JMP Pro puoi farlo con Formula Depot.
Puoi selezionare le colonne della formula, selezionare le colonne di copia, aprire un nuovo script (ctrl + t) e incollarlo lì. Quindi cerca nell'editor di script.
Potresti anche provare a rimuovere quella colonna e, se viene utilizzata, JMP visualizzerà un avviso simile
Modificare:
Potrebbe esserci anche un modo in JMP18 di utilizzare Gestione colonne, ma sono riuscito a trovarne uno. Il dizionario dei dati può quasi farlo, ma memorizza le formule come immagini in modo che non possano essere cercate facilmente
E ovviamente ci sono molte opzioni di puro scripting
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Similmente al suggerimento di @jthi di copiare lo script di ogni colonna, puoi copiare lo script dell'intera tabella senza i dati utilizzando il triangolo rosso (in alto a sinistra della tabella) > Copia script tabella (nessun dato).
Lo script conterrà il jsl per ricreare la tua tabella, che includerà tutte le formule delle tue colonne. Incolla lo script in una finestra di script ed esegui la ricerca da lì.
Spero che aiuti!
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
@julian forse questo tipo di ricerche potrebbe essere implementato in Column Manager in qualche modo? Quindi potremmo anche cercare i valori all'interno delle Proprietà colonna invece di limitarci a filtrare quelli che hanno proprietà specifiche. Almeno Formula, Note e nomi di colonna brevi/lunghi sono alcune proprietà di colonna che potrebbero trarre vantaggio se potessimo effettuare la ricerca.
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Ri: È possibile cercare formule di colonna?
Ho iniziato con l'idea di @julian di utilizzare lo script table e ho aggiunto alcune funzioni
- cercare colonne nelle formule e
- per visualizzare i risultati della ricerca:
//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 ) ) )
);
Questo post è stato originariamente scritto in English (US) ed è stato tradotto per comodità. Quando risponderai, verrà anche tradotto in English (US).