Ich möchte ein Skript schreiben, um für jede in der Originaltabelle vorhandene Spalte eine neue Spalte zu erstellen. Die neuen Spaltenwerte entsprechen einem konstanten Wert, der von den ursprünglichen Spaltenwerten subtrahiert wird. Wie greife ich auf die Werte in der Spalte zu?„cnme“ liest die Spaltenverweise genau, Column(cnme) liest jedoch nicht die Werte in der Spalte
Code:
a = N Col( Datentabelle( "vert" ) );
For( i = 2, i <= a, i++,
cnme = Column( i ) << get name;
New Column( "col", Formula(Subtract(Column(cnme), 6.5) ) ) );
Eine Spaltenformel muss vollständig in die vollständige JSL-Anweisung erweitert werden, da sich andernfalls die Werte ändern, wenn die in der Formel referenzierten Variablen geändert werden, wenn zusätzliche Spalten angegeben werden.In Ihrem Fall ändert sich die Variable cnme mehrmals.Nachfolgend finden Sie einige Beispiele für die Vorgehensweise.
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 ) ) ) ) );
);