Voglio scrivere uno script per creare una nuova colonna per ogni colonna presente nella tabella originale; i nuovi valori della colonna equivalgono a un valore costante sottratto dai valori della colonna originale. Come accedo ai valori nella colonna?Il "cnme" legge i riferimenti alla colonna in modo accurato ma Column(cnme) non legge i valori nella colonna
Codice:
a = N Col(Tabella dati("vert"));
For( i = 2, i <= a, i++,
cnme = Colonna (i) << ottieni nome;
Nuova colonna( "col", Formula(Sottrai(Colonna(cnme), 6.5) ) ) );
Una formula di colonna deve essere completamente espansa nell'intera istruzione JSL, perché altrimenti i valori cambieranno man mano che le variabili a cui si fa riferimento nella formula vengono modificate man mano che vengono specificate colonne aggiuntive.Nel tuo caso, la variabile cnme cambia più volte.Vedi sotto per un paio di esempi di come lavorare in abbondanza.
Names Default To Here( 1 );
a = N Col( Data Table( "vert" ) );
For( i = 2, i <= a, i++,
cnme = Column( i ) << get name;
Eval(
Substitute(
Expr(
New Column( "Adjusted " || cnme, Formula( Subtract( As Column( _cnme_ ), 6.5 ) ) )
),
Expr( _cnme_ ), cnme
)
);
);
Names Default To Here( 1 );
a = N Col( Data Table( "vert" ) );
For( i = 2, i <= a, i++,
cnme = Column( i ) << get name;
Eval( Eval Expr( New Column( "Adjusted " || cnme, Formula( Subtract( As Column( Expr( cnme ) ), 6.5 ) ) ) ) );
);