Come rimuovere virgole invertite in un nome variabile in una formulaCiao,
Vorrei scegliere due colonne e fare la formula. Tuttavia, le variabili nella formula hanno "" attorno al nome e quindi non funziona. Eventuali suggerimenti?
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
Ri: Come rimuovere virgole invertite in un nome variabile in una formulaHey! Funziona se uso il nameexpr. Grazie ad entrambi per il tuo aiuto. Sono veramente felice.Ri: Come rimuovere virgole invertite in un nome variabile in una formulaGrazie a entrambi per i tuoi suggerimenti, tuttavia, nessuno di loro funziona per me. Per chiarimenti, ho creato un file di test con i dati nella colonna A, Status in col B. Poi ho creato una terza colonna con la formula inclusa. Puoi vedere che funziona. Se eseguo lo script per fare lo stesso (non so quali colonne voglio pulire per gli zeri) nella colonna 4 si vede che non funziona bene. Spero che tutto abbia un senso.
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
Ri: Come rimuovere virgole invertite in un nome variabile in una formulaPenso che tu voglia fare qualcosa del genere:
dt << new column("check",
formula(eval(evalexpr(If(Is Missing(expr(nameexpr(yvar))),.,expr(nameexpr(xvar))) )))
);
The selected names are in the scriptI nomi selezionati sono nella sceneggiatura
Senza il lavoro extra, ottieni qualcosa di simile
The variable names are in the scriptI nomi delle variabili sono nello script
Che funziona solo fino a quando yvar tiene: name e xvar detiene: height. Non sarà così se salvi la tabella, chiudi e riavvii JMP, quindi apri la tabella.
Che cosa fa?
eval () è un segnale a formula per valutare la sua argomentazione. Normalmente non lo vorrai perché normalmente l'espressione che dai a formula () non dovrebbe essere valutato finché la colonna non ha bisogno di eseguirlo. Quindi il primo codice che esegue è evalexpr () che restituirà un'espressione riscritta per la colonna formula. Evalexpr guarda nella sua argomentazione per espr () funzioni che può valutare e sostituire con il risultato; ce ne sono due. Quindi ciò che viene valutato è il NameExpr funzione, che restituisce il nome del suo argomento ... l'argomento e il nome di xval è: height.
Ri: Come rimuovere virgole invertite in un nome variabile in una formulaanche basato sull'input di Craige (grazie!) ho sistemato lo script usando l'editor di finestre Column
dt = Current Data Table();
cd=column Dialog(
Title(" Clean False Zeroes "),
xcols= ColList(" Numeric ", MinCol( 1 ), DataType("Numeric"), modeling type("Continuous") ),
ycols= ColList(" Character ", MinCol( 1 ), DataType("Character"), modeling type("Nominal") ),
);
xvar =cd["xcols"];
yvar =cd["ycols"];
xvar=xvar[1];
yvar=yvar[1];
dt << new column("check",, formula(If(Is Missing(yvar),.,xvar) ) );
Ri: Come rimuovere virgole invertite in un nome variabile in una formulaDovremmo vedere più della JSL che sta creando lo script per dare una risposta migliore, ma
{"LOA (QC1007AI),%"}
è una lista di una stringa quotata. (Le parentesi graffe creano una lista.) Puoi estrarre l'elemento dalla lista e avvicinarti un po '
colNames = {"LOA (QC1007AI),%"};
theColumnName = colnames[1];
print(theColumnName);
Dovrai creare una colonna dal nome della colonna per la maggior parte dell'utilizzo.
col = column( dt, theColumnName );
la funzione colonna cercherà il nome nella tabella dati e restituirà la colonna.
Penso che potresti aver usato una funzione che restituisce i nomi delle colonne piuttosto che una funzione che restituisce colonne. C'è un buon post http://www.pega-analytics.co.uk/blog/column-references/ discutendo alcuni di questi problemi.
Ri: Come rimuovere virgole invertite in un nome variabile in una formulaCiao gianpaolo_polsi,
Grazie per la sceneggiatura, penso di poter usare per altri scopi, tuttavia, non risolve il mio problema: Se (È mancante ({"Stato (LOA)"}),
.,
{"LOA (QC1007AI),%"}
)
Non capisco perché ottengo questi "" segni nella mia formula quando la scrivo.Ri: Come rimuovere virgole invertite in un nome variabile in una formulail carattere di sottolineatura potrebbe essere una scelta migliore rispetto al colon perché il colon è un operatore.
Ri: Come rimuovere virgole invertite in un nome variabile in una formulaCiao Sop
prova questo codice nella tabella dati prima di applicare le formule
// code to replace any special JMP character with single char " : "
For(i = 1, i <= N Col(dt), i++,
Column(dt, i) << set name(Regex(Column(dt, i) << get name, "\W", ":", GLOBALREPLACE))
);