Discrepanza nei risultati di calcolo, media colonnare, ecc.Perché i risultati dei calcoli differiscono quando si utilizzano variabili rispetto alle stringhe dirette? Ho il sospetto che quando si utilizzano variabili, la funzione di raggruppamento per la parte variabile potrebbe non funzionare. Come si può risolvere questo problema?
con la seguente formula
Col Mean(
:data,
:A,
:B,
:C_D == "ccccccc"
)
Questa è la formula.
Col Mean(
:data,
:A,
:B,
Column(Eval Insert("C_^get_input_1^" == get_input_2))
)
Automazione e scriptingRe: Discrepanza nei risultati di calcolo, media colonnare, ecc.Mi dispiace, tutti. Ho dimenticato di dirloget_input_1Eget_input_2si può supporre che siano già ottenuti come stringhe, rispettivamente.
Re: Discrepanza nei risultati di calcolo, media colonnare, ecc.Il primo è il confronto tra colonna e stringa, mentre il secondo non ci permette di essere sicuri di cosa si stia confrontando (stringa con stringa, che sarebbe sempre 1 o 0?). Almeno non viene valutato e sarà necessario valutare i valori nella formula.
Inserisci un'espressione in un'altra utilizzando Eval Insert, Eval Expr, Parse e Substitute
Re: Discrepanza nei risultati di calcolo, media colonnare, ecc.Voglio ottenere lo stesso risultato dell'espressione nella prima riga. Quando le variabili sono state specificate rispettivamente come get_input_1="D" e get_input_2="cccccc", mi aspettavo naturalmente lo stesso risultato, ma la realtà era diversa...
Re: Discrepanza nei risultati di calcolo, media colonnare, ecc.Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, get_input_1)),
Expr(_input2_) = get_input_2
)
));
ma devi aggiungere una nuova colonna e una nuova formula a quell'esempio
Re: Discrepanza nei risultati di calcolo, media colonnare, ecc.
Column(Eval Insert("C_^get_input_1^" == get_input_2)) viene valutato come Column( "C_D" == "ccccccc" ), quindi la tua formula sarebbe
modificare
L'inclusione di un valore non stringa all'interno di Eval Insert() in realtà fa sì che la valutazione restituisca una stringa vuota.
Col Mean(
:data,
:A,
:B,
Column( "" )
);
Potrebbe essere per questo che non funziona come previsto. La soluzione di Jarmo dovrebbe essere quella che cerchi.
Re: Discrepanza nei risultati di calcolo, media colonnare, ecc.
Grazie per le vostre risposte. Mi scuso anche per il ritardo.
Ho scritto il JSL come mostrato di seguito, ma viene visualizzato un errore. Quale potrebbe essere la causa?
Il messaggio di errore dice "argomenti insufficienti" nella posizione "Substitute/ ### /(Expr(".
Data Table( "data_table" ) << New Column( Eval Insert("Xbar_^get_input_process^_^get_input_line^"),
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
)
));
)) << Run Formulas;
Re: Discrepanza nei risultati di calcolo, media colonnare, ecc.Inserisci un'espressione in un'altra utilizzando Eval Insert, Eval Expr, Parse e Substitute
Molto probabilmente qualcosa del genere, ma non posso testarlo perché non ho dati o la parte precedente dello script
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Substitute(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
));
Re: Discrepanza nei risultati di calcolo, media colonnare, ecc.Grazie per la vostra attenzione, anche se è stato difficile sperimentare senza poter fornire dati concreti.
L'ho modificato come segue per adattarlo alla mia tabella dati.
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Eval Insert(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) , NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) , get_input_2
));