Hallo,
Ich brauche Ihre Hilfe, um Spalten durch eine Variable aus einer anderen Tabelle zu unterteilen
dt ist eine große Tabelle mit vielen Spalten
dt2 hat 2 Spalten „Names“ (enthält Spaltennamen von dt) und „DivideValue“ (könnte 10, 100, 10000, ... sein)
Ich möchte dt-Spalten durch den dt2-Teilungswert dividieren, WENN dt-Spalte nane = dt2-Namen.
Ich könnte eine neue Spalte mit einer Formel erstellen, dann die Eigenschaft entfernen und die „alte Spalte“ löschen, aber ich denke, wir könnten eine Formel auf die aktuellen Spalten anwenden?
Ich habe festgestellt, dass wir ein benutzerdefiniertes Format wie das folgende anwenden können: A/ 10
Column( "A" ) << set Format( "Custom", Formula( (Wert/ 10 )) ), 5, 0 );
Aber in der for-Schleife kann ich es nicht zum Laufen bringen.
colnamedt = {};
N = N Col(dt);
R = N Row(dt2);
For(k = 1, k <= N, k++,
colnamedt = Column( dt,k ) << getname();
for (i=1, i <= R, i++,
if (( dt2:Names[i]==colname),
Column( dt,k ) << set Format( "Custom", Formula( (value/dt2:DivideValue[i]) ), 5, 0 );
););
);
Danke
Geof
@martindemel
JMP kann jede bestimmte Zelle in jeder offenen JMP-Datentabelle direkt referenzieren, daher ist die Durchführung Ihrer Anfrage ziemlich einfach
Names Default To Here( 1 );
dt = Data Table( "dt" );
dt2 = Data Table( "dt2" );
For( i = 1, i <= N Rows( dt2 ), i++,
If( Try( Column( dt, dt2:Names[i] ) << get name, "" ) != "",
For( k = 1, k < N Rows( dt ), k++,
Column( dt, dt2:Names[i] )[k] = Column( dt, dt2:Names[i] )[k] / dt2:Divide Value[i]
)
)
);