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 초 지연을 추가하도록 스크립트를 변경했으며 이제 문제없이 참여할 수 있습니다. 나는 이것이 같은 문제를 겪는 다른 사람들에게 도움이되기를 바랍니다.
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
);