효율적인 공식야,
빅 데이터 테이블 (~ 3 천만 행 * 20 열)이 있고이 통과 / 실패 테스트로 인해 JMP가 중단됩니다.
PC는 Windows 10 64 비트, i7-4770 @ 3.4Ghz, SSD 및 32GB DDR3 1600Mhz입니다.
JSL은 다음과 같습니다.
cctable << New Column( "New status", Character, Nominal, Formula( If( :result < :L | :result > :H, "Fail", "Pass" ) ) );
더 효율적일 수 있습니까? JMP에 더 나은 선택이 있습니까?
감사,
나는한다
Re : 효율적인 공식감사!
내가 할게.
가장 도움이 된 것은 80M * 5가 아닌 1M * 100의 테이블이었습니다.
Re : 효율적인 공식
내 테스트는 테이블을 만드는 데 15 초, 추가 열을 추가하는 데 15 초가 걸립니다. 유휴 시간을 기다리지 않고 수식을 즉시 평가하도록 << runFormulas를 사용하고 있습니다.
start = Tick Seconds();
dt = New Table( "Untitled",
Add Rows( 30e6 ),
New Column( "L", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "result", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "H", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) )
);
dt<<RUNFORMULAS> :H, "Fail", "Pass" ) ) );
dt << runformulas;
stop = Tick Seconds();
Show( "add", stop - start, N Rows( dt ) );</RUNFORMULAS>
"창조하다";
중지-시작 = 12.8833333333605;
N 행 (dt) = 30000000;
"더하다";
중지-시작 = 12.6833333332906;
N 행 (dt) = 30000000;
수식 추가
Re : 효율적인 공식감사합니다. "New Column (... ) "명령은 시간이 걸리고 모든 것이 중단됩니다.
업데이트 / 가입을 사용하겠습니다.
당신 (또는 다른 사람
) 다른 생각이 있다면-나는 그것을 듣고 기뻐할 것입니다.
감사.
Re : 효율적인 공식안녕하세요,
이러한 테이블에는 열 수식을 사용하지 마십시오.
JSL로 계산을 실행하고 결과를 붙여 넣으십시오.
첨부 된 표와 내가 사용한 스크립트를 참조하십시오.
문안 인사,
톰.