Ich versuche, diese Tabelle (unten) mit einer anderen zu verbinden, indem ich die Spalte rowNoVFPD mit einer in einer anderen Tabelle abgleiche.

Die Zuweisung der Spalte VFPDplus1 erfolgt nach der Formel:
Lag(:VFPD, -1).
Wenn ich versuche, dies mit JSL zu tun, wird die VFPDplus1-Spalte leer kopiert, ansonsten jedoch korrekt.
Wenn ich versuche, die JMP-Option „Verbinden“ in der Symbolleiste „Tabelle“ zu verwenden, wird die Datei korrekt kopiert.
Wie kann ich das in JSL lösen?
Meine aktuelle Join-Funktion ist geschrieben:
Data Table( "markTableSubset" ) << Join(
with( Data Table( "VFPD" ) ),
by matching columns( :FloorVdiv64 = :rowNoVFPD )
);
Ich habe mein Problem nach ein paar Wochen gefunden, um meinen Kopf frei zu bekommen.
Hier ist ein Beispielausschnitt aus meinem ursprünglichen Skript:
If( File Exists( path ), //Check file exits, import VFPD file
vfpdTable = Open( path, Import Settings( Data Starts( 5 ) ) );
Column( 1 ) << Data Type( Numeric ) << Modeling Type( "Continuous" ) << Set Name( "rowNoVFPD" );
Column( 2 ) << Set Name( "VFPD" );
New Column( "VFPDplus1", Numeric, Continuous, Formula (Lag(:VFPD,(-1)))); //Look at next row for interpolation after joining
Column( 3 ) << delete property(formula); //Copying formula causes issues when joining
);
Meine Tabellen könnten mehr als 500.000 Zeilen umfassen, da es sich um große experimentelle Datensätze handelt, sodass die Formel die Berechnung der Ergebnisse für die gesamte Spalte noch nicht abgeschlossen hatte, als ich die Formeleigenschaft löschte (ein Rückblick auf einen meiner ursprünglichen Versuche, die Verknüpfung zu erhalten zu arbeiten), wendete also vor dem Beitritt überhaupt keine der Formelergebnisse an. Dasselbe passierte, wenn ich versuchte, sofort nach dem Erstellen der neuen Formelspalte beizutreten.
Seitdem habe ich das Skript geändert, um eine Verzögerung von 1 Sekunde hinzuzufügen, damit die Formel vollständig berechnet werden kann, und ich kann jetzt ohne Probleme beitreten. Ich hoffe, das hilft allen anderen, die auf das gleiche Problem stoßen.
If( File Exists( path ), //Check file exits, import VFPD file
vfpdTable = Open( path, Import Settings( Data Starts( 5 ) ) );
Column( 1 ) << Data Type( Numeric ) << Modeling Type( "Continuous" ) << Set Name( "rowNoVFPD" );
Column( 2 ) << Set Name( "VFPD" );
New Column( "VFPDplus1", Numeric, Continuous, Formula (Lag(:VFPD,(-1)))); //Look at next row for interpolation after joining
Wait(1); //Necessary to stop deleting the formula before it's calculated the full column
Column( 3 ) << delete property(formula); //Copying formula causes issues when joining
);