JSL 스크립트의 데이터 필터가 느리게 실행됨데이터 필터를 활용하여 "ITEM_NAME" 열에서 관심 있는 테스트 약 180개를 선택하고 새 테이블을 생성하는 JSL 스크립트를 만들려고 합니다. 데이터 필터를 사용하여 수동으로 실행하면 지연이 발생하지 않습니다. 하지만 프로세스를 자동화하려고 하면 새 테이블을 생성하는 데 약 15분이 걸립니다. 더 효율적으로 실행하려면 어떻게 해야 할까요?
Open( "$DOCUMENTS/test.jmp" );
ref10 = Data Table( "ABC" ) << Select Where(
:ITEM_NAME == "test1" |
:ITEM_NAME == "test2" |
:ITEM_NAME =="test3" |
:ITEM_NAME ==
...
"test180"
) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
자동화 및 스크립팅Re: JSL 스크립트의 데이터 필터가 느리게 실행됨이것을 시도해보세요
Open( "$DOCUMENTS/test.jmp" );
items={"test1" "test2""test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(ITEMS) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Re: JSL 스크립트의 데이터 필터가 느리게 실행됨짐, 고마워요. 왠지 오류가 발생하네요(아마도 구문 관련 오류일 거예요).
Re: JSL 스크립트의 데이터 필터가 느리게 실행됨지금은 더 빨라진 것 같고 완료하는 데 3~4분 정도 걸렸지만, 수동으로 하면 훨씬 더 빨라졌습니다. 오류를 방지하기 위해 코드를 약간 수정해야 했습니다.
Open( "$DOCUMENTS/test.jmp" );
items={"test1", "test2", "test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(items, ITEM_NAME) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Re: JSL 스크립트의 데이터 필터가 느리게 실행됨제 실수는... 밤늦게 일어났다는 것입니다...
Re: JSL 스크립트의 데이터 필터가 느리게 실행됨데이터를 보거나 이해하지 않고서는 스크립트가 왜 그렇게 느린지 이해하는 것이 다소 어렵습니다(느릴 리가 없습니다).
해당 행을 선택하는 대신 << 행 가져오기 위치 및 하위 집합을 사용해 보세요. 이 예제에서는 연결된 하위 집합 및 제목 없는 출력 테이블 이름을 사용하여 데이터 보기를 복제해 보았습니다.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
items = {12, 13, 14, 15};
rows_of_interest = dt << get rows where(Contains(items, :age));
dt_subset = dt << Subset(Rows(rows_of_interest), Selected Columns(0), Link to original data table(1), Output Table("Untitled"));
Re: JSL 스크립트의 데이터 필터가 느리게 실행됨Jarmo, 고마워요. 덕분에 처리 시간이 약 1분 35초로 단축됐어요.
제가 사용하는 JMP 테이블에는 열이 13개이고, raw 데이터는 1,3127,825개입니다. 출력 파일에는 raw 데이터가 1,274,416개 있습니다.
Re: JSL 스크립트의 데이터 필터가 느리게 실행됨아마도 최적화를 할 수 있겠지만, 해당 속도가 애플리케이션에 충분하다면 그런 걱정은 하지 않으셔도 됩니다.