Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?Ad esempio, aggiungi una colonna "test" con "Big Class.jmp" e scrivi una formula casuale. Come utilizzare JSL per salvare il testo della formula estratta dalla formula in questa colonna in una cella in un'altra colonna?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "test" );
Column( "test" ) << Formula( If( age > 15, height + 50 + weight, height + 100 + weight ) );
dt << run formulas;
New Column( "txt", Character, "Nominal" );

Automazione e scriptingOrganizzazione dei contenutiCombinazione e pulizia dei datiCondivisione e comunicazione dei risultatiRi: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?Poiché nei dati effettivi non sono presenti valori mancanti, è possibile rimuovere tutte le seguenti forme di codice.
!Is Missing(:abc) &
Is Missing(:abb) |
Come dovrebbe essere codificato in JSL? Grazie esperti!
Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?Non ho ancora familiarità con l'utilizzo di JSL per l'elaborazione regolare,
Ancora una volta, questo viene fatto con EmEditor.
document.selection.Replace("([a-Z]) ([a-Z])","\\1zzzz\\2",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" ","",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("zzzz"," ",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("Is Missing\\(:(.[^)]{0,})\\)\\|","",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("!Is Missing\\(:(.[^)]{0,})\\)&","",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?Sì, il mio utilizzo è addestrare il modello una volta, ottenere la formula di previsione e salvare direttamente la formula in formato testo nella cella.
Se utilizzato per l'analisi di nuovi dati, utilizzare direttamente il modulo seguente per calcolare i nuovi dati utilizzando la formula di previsione originale
aaa = dt[1, "txt"];
Current Data Table( d2 );
Eval( Parse( "Column(d2,\!"test\!")<<FORMULA></FORMULA>
Grazie!
Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?Dipende da quale sia l'intenzione finale, ma potrebbe essere più semplice mantenere la formula nella cella di an colonna di espressione .
Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?La formula di previsione derivata dall'addestramento xGBoost è troppo complessa.
Come applicare questa formula di previsione ai nuovi dati è davvero complicato.
Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?fatto con un'espressione regolare

Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?Vedi << ottieni formula per recuperare la formula.
Vedere Word() per recuperare gli elementi delimitati da spazi vuoti per creare una versione "rimossa degli spazi vuoti" della formula oppure è possibile farlo con un'espressione regolare
Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?Puoi ottenere la formula con << Ottieni formula, quindi cambiarla in carattere ed eseguire le modifiche richieste
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("test", Formula(If(:age > 15, :height + 50 + :weight, :height + 100 + :weight)));
dt << New Column("txt", Character, "Nominal", << Set Each Value(
Substitute(Char(AsColumn(:test) << get formula), " ", "")
));Ri: Come utilizzare JSL per estrarre il testo della formula da una colonna e salvarlo in una cella?E voglio utilizzare JSL per ottenere la formula per rimuovere il carattere di nuova riga, ma anche per rimuovere lo spazio ridondante. Semplifica il contenuto del testo della formula memorizzato nella cella.
dt[1,"txt"]=
If(:age>15,:height+50+:weight,:height+100+:weight)
Grazie Esperti!