rowNoVFPD 列を別のテーブルの列と一致させることで、このテーブル (下記) を別のテーブルに結合しようとしています。

列 VFPDplus1 は、次の式を使用して割り当てられます。
Lag(:VFPD, -1).
これを JSL で実行しようとすると、VFPDplus1 列は空白にコピーされますが、それ以外は正しくコピーされます。
「テーブル」ツールバーのJMP「結合」オプションを使用してみると、正しくコピーされます。
JSL でこれを解決するにはどうすればよいですか?
私の現在の結合関数は次のように書かれています。
Data Table( "markTableSubset" ) << Join(
with( Data Table( "VFPD" ) ),
by matching columns( :FloorVdiv64 = :rowNoVFPD )
);
数週間後に問題を発見し、頭をクリアしました。
元のスクリプトの抜粋の例を次に示します。
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
);
テーブルは大きな実験データセットであるため、500,000行を超える可能性があります。そのため、式プロパティを削除するまでに列全体の結果の計算が完了していませんでした(結合を取得する元の試みの1つに戻ります)したがって、参加する前に式の結果をまったく適用していませんでした。新しい数式列を作成した直後に結合しようとすると、同じことが起こりました。
その後、1秒の遅延を追加して数式を完全に計算できるようにスクリプトを変更し、問題なく参加できるようになりました。これが同じ問題に出くわす他の人に役立つことを願っています。
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
);