Problem mit JMP-Skripting (Multiplikationsfunktion)Hallo,
Ich habe Probleme bei der Verwendung der Multiplikationsfunktion in jmp. Ich möchte die Werte auswerten, bevor ich sie in eine Tabelle platziere. Ich habe das Debug-Skript verwendet und die beiden Variablen werden korrekt ausgewertet, aber nicht miteinander multipliziert. Kann jemand helfen?
fl = Files In Directory( cal_path, recursive );
fli = {};
for( y = 1, y<=nitems(fl), y++,
if(left(fl[y],1) == "~", remove from(fl, y));
insertinto(fli,left(substitute(substitute(fl[y],"-",""),"_",""),9));
);
grfactor1 = {};
adjgr1 = {};
agr1 = {};
For( i = 1, i <= N Items( fl ), i++,
currentfile = cal_path || fl[i];
dt = Open( currentfile );
Current Data Table( dt );
name_list = dt << get column names( string );
If( Contains( name_list, "Active Multi" ) == 0 ,
Insert Into( grfactor1, "" );
Insert Into( adjgr1, "" );
close(dt, nosave);
Continue()
);
grfa = :name( "Active Multi 2" )[8];
adjgra = :name( "Active Multi 2" )[20];
Insert Into( grfactor1, grfa );
Insert Into( adjgr1, adjgra );
Close( dt, nosave );
);
agr1=adjgr1;
Multiply to (agr1, grfactor1);
ct = New Table( "historical_data" );
ct << New Column( "GRF1", numeric, values( Eval( grfactor1 ) ) );
ct << New Column( "GRU1", numeric, values( Eval( adjgr1 ) ) );
ct << New Column( "GR1", numeric, formula( GRU1 * GRF1 ) );
ct << new column( "check 1", numeric, values(Eval ( agr1 )));Vielen Dank im Voraus.
Betreff: Problem mit JMP-Skripting (Multiplikationsfunktion)Perfekt, vielen Dank euch allen. Es funktioniert jetzt wie erwartet.
Betreff: Problem mit JMP-Skripting (Multiplikationsfunktion)In diesem Beispiel sieht es wie Zeichenfolgen aus, nicht wie Zahlen. Wenn dies auch bei Ihren Daten der Fall ist, müssen Sie sie in Zahlen umwandeln, da Zeichenfolgen nicht korrekt multipliziert werden. Die Konvertierung kann wahrscheinlich effizient in Ihrer Schleife durchgeführt werden:
//...
grfa = Num(:name("Active Multi 2")[8]);
adjgra = Num(:name("Active Multi 2")[20]);
//...
Betreff: Problem mit JMP-Skripting (Multiplikationsfunktion)Das ist genau das, was ich versuche, und ich habe die Show-Funktion verwendet (tolle Idee) und sie hat Folgendes zurückgegeben:
adjgr = {"2.763", .};
grfactor = {"0.291", .};
agr = {"2.763", .};
adjgr = {"2.763", .};
grfactor = {"0.291", .};
Ich habe im Moment nur 2 Dateien, aus denen es gelesen wird, und eine enthält nichts und die andere enthält nur Zufallszahlen.
Wie Sie sehen können, wird nur der Adjgr ausgewertet und nicht mit dem Grfactor multipliziert.
Betreff: Problem mit JMP-Skripting (Multiplikationsfunktion)Ich versuche, die Spaltenberechnung zu entfernen und sie stattdessen im Skript zu berechnen. Die Formel im neuen Spaltenskript funktioniert und wird korrekt ausgewertet
Multiply to (agr1, grfactor1);
was mir den gleichen Wert liefern sollte, aber die Variable scheinbar nur anhand des agr1-Werts auswertet.
Betreff: Problem mit JMP-Skripting (Multiplikationsfunktion)Ich denke, Ihr Code versucht, so etwas zu tun; Ich hatte noch nie eine Werteliste ausprobiert:
a={1,2};
b={3,4};
show(a,b);
c=multiplyto(a,b);
show(a,b,c);
a = {1, 2}; // Eingabe zur Multiplikation mit()
b = {3, 4};
a = {3, 8}; // Dies wird durch Multiplizieren mit() aktualisiert
b = {3, 4};
c = {3, 8}; // dies wird durch multiplizieren mit() zurückgegeben
Überprüfen Sie unbedingt das JMP-Protokoll auf Fehlermeldungen und schreiben Sie mit der Funktion show(a,b) einige Werte in das Protokoll, um zu sehen, was passiert.
Betreff: Problem mit JMP-Skripting (Multiplikationsfunktion)Versuchen Sie, den Gültigkeitsbereich „:“ zu verwenden, um anzugeben, dass GRU1 und GRF1 Spaltennamen sind. Wenn die Tabelle groß ist, kann es auch hilfreich sein, einen Wait()-Befehl einzufügen, damit die Eingabespalten vollständig abgeschlossen werden können, bevor die Formel ausgewertet wird.
//...
Wait(0);
ct << New Column("GR1", numeric, formula(:GRU1 * :GRF1));
//...