IMF 기능을 더욱 효율적으로 만드세요.첨부된 예시와 같은 파일(.CSV)이 수천 개 있습니다. 시간 정보는 raw 102에 저장되어 있고, 측정 데이터는 raw 242에서 시작합니다.
현재 시간 정보와 테스트 데이터 파일을 두 번 가져오고 있습니다. 그 후 업데이트 함수를 사용하여 시간 정보를 테스트 데이터 테이블로 가져옵니다.
이 논리는 소규모 파일 세트에서는 효과적이지만, 시간 정보를 위한 IMF가 원시 102 이후의 모든 데이터를 가져오기 때문에 많은 수의 파일에는 효율적이지 않습니다.
IMF 함수에서 시간 정보 가져오기의 마지막 데이터 줄을 설정할 수 있는 방법이 있을까요? 그러면 파일당 141개 행을 추가로 가져오지 않아도 됩니다.
기본 데이터 분석 및 모델링Re: IMF 기능을 더욱 효율적으로 만들어주세요.제가 아는 한, 여러 파일 가져오기로는 이를 제어할 수 없습니다. JMP에서 모든 데이터를 가져온 후 결과 테이블을 정리해 보셨나요? 아니면 .csv 파일에서 몇 줄만 내보내려는 경우 JSL과 텍스트 파일 로드를 사용해 볼 수도 있습니다.
Re: IMF 기능을 더욱 효율적으로 만들어주세요.안녕하세요, Jarmo님.
JSL을 사용했고, 제가 만든 스크립트는 아래와 같습니다. 잘 작동하지만, 테스트를 더 많이 진행하면서 데이터 세트가 점점 더 커지고 있어서 이 로직은 효율적이지 않습니다. 특히 시간표 를 가져올 때 한 행만 가져오는 방법을 몰라서 그렇습니다.
Names Default To Here( 1 );
dir=Pick Directory( "Select Data Directory");
// Import multiple files
Time=Multiple File Import(
<
<SET folder="">
= 1, i--, If( (Col N Missing( Column( i ) ) / N Row()) == 1, Data Table( dt1 ) << delete columns( i ) ) ); For( i = N Col( dt2 ), i >= 1, i--, If( (Col N Missing( Column( i ) ) / N Row()) == 1, Data Table( dt2 ) << delete columns( i ) ) ); Data Table( dt1 ) :File Name<< Set Display Width( 300 ); Data Table( "Time" ):Column 3 << Set Name( "Test Time" ); // Update data table Data Table( "Test Data" ) << Update( With( Data Table( "Time" ) ), Match Columns( :File Name = :File Name ), Add Columns from Update Table( :Test Time ) ); // Close Data Table: Time Close( Data Table( "Time" ), NoSave );
</SET>
Re: IMF 기능을 더욱 효율적으로 만들어주세요.파일이 몇 개나 있나요? 한 번만 가져오면 충분할 겁니다. 그런 다음 JMP에서 데이터를 적절히 정리하면 됩니다.
Re: IMF 기능을 더욱 효율적으로 만들어주세요.현재 약 2만 개의 파일이 있으며, 매일 1,000개에서 1,500개의 새 파일이 추가됩니다. 스크립트 실행에는 약 7분 30초가 걸립니다. 시간표에 불필요한 행이 포함되어 있기 때문에 정리하기 전에 280만 개의 행을 가져오게 됩니다.
Re: IMF 기능을 더욱 효율적으로 만들어주세요.새로운 파일만 가져오는 건가요, 아니면 파일 수가 늘어나는 폴더 전체를 가져오는 건가요?