Usa la colonna selezionata per la formula in una nuova colonnaCiao,
provo a generare uno script in cui devo selezionare una colonna. Con questa selezione creo una nuova colonna, che contiene una formula (con la colonna selezionata). Ecco il mio approccio:
dt = Current Data Table ();
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box( all ), dt << New Table Variable( "Selected Column", lb <<get selected ),
Button Box( "Moving Average", dt <<New Column ("Movin Average", Numeric, Formula (:Range + "selected Column") )
));
Ho due problemi:
1. Come posso generare una variabile Coulumn in base alla selezione?
2. Come posso utilizzare questa variabile nella mia formula? Per "Intervallo" (numerico) è possibile, ma per la colonna selezionata (carattere) no.
Re: Usa la colonna selezionata per la formula in una nuova colonnaHigh Jim, questo è un ottimo copione.È possibile creare colonne Formula aggiuntive (Col Mean() ...) aggiungendo pulsanti formula aggiuntivi?
Re: Usa la colonna selezionata per la formula in una nuova colonnaGrazie!
Re: Usa la colonna selezionata per la formula in una nuova colonnaIl codice si lamenta del fatto che il valore di Range non è una stringa di caratteri.Quindi, per correggere ciò, il codice seguente forza sia il valore dell'intervallo che il nome della colonna restituito come stringhe di caratteri, utilizzando la funzione char() per assicurarsi che siano stringhe di caratteri.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( char(dt << get table variable( "Range" )) || " + :" || char((lb << get selected)[1]) )
)
)
)
);Re: Usa la colonna selezionata per la formula in una nuova colonnaGrazie!
Se guardo al codice dovrebbe essere esattamente quello che sto cercando. Ma ho ricevuto un messaggio di errore:
l'argomento dovrebbe essere un carattere nell'accesso o nella valutazione di 'Concat' , Bad Argument( (lb << get select)[1] ), dt << get table variable( "Range" ) || /*###*/" + :" || /*###*/(lb << seleziona
)[1] /*###*/
Come variabile di tabella ho ottenuto la colonna selezionata. Ma la valutazione della formula per la nuova colonna non è possibile.
Devo modificare le Preferenze nella mia versione di JMP?
Re: Usa la colonna selezionata per la formula in una nuova colonnaEcco un esempio funzionante di uno script che farà ciò che credo che il tuo script originale abbia tentato di fare.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( dt << get table variable( "Range" ) || " + :" || (lb << get selected)[1] )
)
)
)
);
Ora il problema che sto avendo è capire un paio di elementi.
- Perché stai creando variabili di tabella per il valore di Intervallo e il nome della nuova colonna?
- La formula che hai specificato è effettivamente quella che desideri?L'aggiunta del numero 2 al valore di un'altra colonna non dà alcun tipo di media mobile.È quello che vuoi davvero fare, creare una vera media mobile della riga corrente e i valori precedenti delle ultime 2 righe?