Creare nuove colonne con un ciclo For e assegnare a ciascuna colonna il proprio nome e la propria formulaCiao a tutti,
Ho una grande tabella di dati con valori e intestazioni di colonna test1,test2,test3,test4,...,test800. Alcuni di questi valori sono negativi e vorrei prendere tutte le colonne che definisco nell'elenco "Datalist_log_2" e creare una nuova colonna chiamata "test1_pos" con i valori assoluti. (Per ogni prova).
Datalist_log_2 = {test1, test2, test5, test319};
wmax = N Items( Datalist_log_2 );
For ( w = 1, w <=wmax, w++,
Temp12 = Char(Datalist_log_2[w]);
NewColName = Temp12||"_pos"; //not sure if I need to do this extra round, but it works. Will figure that out myself.
NewColumn(NewColName, Numeric, Continuous, Formula(Abs(Datalist_log_2[w])))
);
Il problema sembra essere che Formula() sta cercando di costruire il valore assoluto della variabile "test1" nella prima iterazione, ma ovviamente non voglio sqrt(test1*test1). Vorrei invece che la colonna appena creata ottenga i valori assoluti della colonna di riferimento con il nome "test1".
Grazie mille per il vostro aiuto
Ri: Creazione di nuove colonne con un ciclo For e assegnazione a ciascuna colonna del proprio nome e formulaFunziona alla grande, grazie
Ri: Creazione di nuove colonne con un ciclo For e assegnazione a ciascuna colonna del proprio nome e formulaDi seguito è riportata una modifica del tuo codice attuale, utilizzando la stessa metodologia che ti ho passato nel tuo post precedente " Combinazione del comando For loop e Dispatch() in un grafico di variabilità" .Se non sei in grado di interpretare cosa sta succedendo, ti suggerisco di dare un'occhiata alla Scripting Guide per una spiegazione.
Aiuto==>Libri==>Guida allo scripting
Datalist_log_2 = {test1, test2, test3};
For( w = 1, w <= N Items( Datalist_log_2 ), w++,
Eval(
Substitute(
Expr(
New Column( Char( Datalist_log_2[w] ) || "_pos",
Numeric,
Continuous,
Formula( Abs( __Col__ ) )
)
),
Expr( __col__ ), Parse( ":" || Char( Datalist_log_2[w] ) )
)
)
);Ri: Creazione di nuove colonne con un ciclo For e assegnazione a ciascuna colonna del proprio nome e formulaChe tempestività, dai un'occhiata a questo Articolo del libro di cucina JSL che fa qualcosa di molto simile.Basta specificare il proprio elenco di colonne da modificare, quindi modificare il nome e la formula della nuova colonna.
Suggerisco di selezionare le colonne e utilizzare il messaggio Current Data Table() << Get Selected Columns per scrivere l'elenco nel registro, che è quindi possibile copiare e incollare nel codice.