테이블 연결 및 입력 파일 닫기열려 있고 입력을 위해 제공된 테이블을 닫는 방법을 찾고 있습니다.
For( f2 = 1, f2 < N 항목( 테이블 ), f2++,
ConcTable = 테이블[f2] << /*###*/연결(
테이블[f2 + 1],
출력 테이블 이름( "모두" )
) /*###*/;
닫기( filelist[f2], 저장하지 않음 );
);
로그의 답은 다음과 같습니다.
Send는 'Send' , Tables[f2] << /*###*/Concatenate( Tables[f2 + 1], Output Table Name( "Both" ) ) /*###*의 액세스 또는 평가에서 스크립터블 개체를 예상합니다. /
Re: 테이블을 연결하고 입력 파일을 닫습니다.
@rc_hertzy 쓴 :
좋은 해결책입니다. 첫째, 오타(마이너스 부호가 아닌 등호): 네 번째 줄은
dt=데이터 테이블(1);
이제 소스에 대해 하나의 열을 어떻게 유지할 수 있습니까? 추가만 하면
소스 열 만들기
Concatenate 문에서 연속적인 소스 열을 얻었지만 원하는 것은 없습니다. 모든 소스 파일을 나열합니다.
관련: 수동으로 파일을 연결하고 소스 스크립트를 출력 파일에서 스크립트 창으로 복사하면 실행되지 않고 나열된 파일 이름을 찾을 수 없다는 오류가 발생합니다. 다음은 스크립트입니다( File1.jmp는 선택된 열린 파일입니다).
dt = 현재 데이터 테이블();
dt << 사슬 같이 잇다 (
데이터 테이블 ( "파일2.jmp" ),
데이터 테이블 ( "파일3.jmp" ),
출력 테이블( "Combinedtest.jmp" ),
소스 열 만들기
);
감사해요. -약간 뒤틀리게 하다
마지막 부분에서 내 오류를 찾았습니다. 하나의 데이터 파일의 이름을 변경했기 때문에 당연히 스크립트가 파일을 찾을 수 없었습니다.
여전히 열려 있는 모든 파일을 명시적으로 나열할 필요가 없도록 소스 열을 추가하도록 솔루션을 수정하는 방법을 원합니다. 감사해요.
Re: 테이블을 연결하고 입력 파일을 닫습니다.좋은 해결책입니다. 첫째, 오타(마이너스 부호가 아닌 등호): 네 번째 줄은
dt=데이터 테이블(1);
이제 소스에 대해 하나의 열을 어떻게 유지할 수 있습니까? 추가만 하면
소스 열 만들기
Concatenate 문에서 연속적인 소스 열을 얻었지만 원하는 것은 없습니다. 모든 소스 파일을 나열합니다.
관련: 수동으로 파일을 연결하고 소스 스크립트를 출력 파일에서 스크립트 창으로 복사하면 실행되지 않고 나열된 파일 이름을 찾을 수 없다는 오류가 발생합니다. 다음은 스크립트입니다( File1.jmp는 선택된 열린 파일입니다).
dt = 현재 데이터 테이블();
dt << 사슬 같이 잇다 (
데이터 테이블 ( "파일2.jmp" ),
데이터 테이블 ( "파일3.jmp" ),
출력 테이블( "Combinedtest.jmp" ),
소스 열 만들기
);
감사해요. -약간 뒤틀리게 하다
Re: 테이블을 연결하고 입력 파일을 닫습니다.다음은 테이블을 연결하고 필요하지 않은 테이블을 닫는 간단한 방법입니다.
Names Default To Here( 1 );
Final_Table="Data_" || char(ntable);
// Concatenate the tables and delete them. Add all of the tables to the first table
dt-data table(1);
For( i = 2, i <= N Table(), i++,
dt << concatenate(data table(i), append to first table(1));
close(data table(i), nosave);
);
// Rename the table to the desired name
dt << set name(Final_Table);
Re: 테이블을 연결하고 입력 파일을 닫습니다.짐,
첨부된 두 개의 테이블을 보면 컬럼의 개수와 컬럼 이름이 같습니다. 둘을 구별하는 유일한 것은 행 수입니다. 열 #1은 타임스탬프이며 이 중복 항목을 기반으로 제거됩니다.
스크립트 작업 방법. 파이널 테이블을 저장하고 파이널의 입력이 된 테이블을 닫는 효율적인 방법을 찾고 있습니다.
친애하는,
신자
Re: 테이블을 연결하고 입력 파일을 닫습니다.데이터 테이블의 샘플과 중복 행으로 간주되는 그림을 제공해 주시겠습니까?
Re: 테이블을 연결하고 입력 파일을 닫습니다.짐, 답변 감사합니다. 조금 더 확장하겠습니다. 목표는 데이터 테이블 목록을 연결하고 이중 행을 삭제하는 것입니다. 닫을 최종 연결된 테이블에 기여한 모든 데이터 테이블. 입력 데이터 테이블의 수는 가변적입니다. 연결할 데이터 테이블의 선택은 시작 문자열이 동일하고 연결된 데이터 테이블의 최종 이름이 동일한 문자열이라는 규칙을 따릅니다.
여기에 연결 및 이중 행 삭제와 최종 테이블 저장을 위한 코드가 있습니다.
If(N 항목(파일 목록)>0,
for (nu_t = 1, nu_t <= num_tables, nu_t++,
FinalTable = Munger(filelist[1],6,4);
Final_Table = "데이터_"||FinalTable||".jmp";
//표시(최종 테이블);
for (f2 = 1, f2 < nitems(Tables), f2++,
ConcTable = Tables[f2] << Concatenate(Tables[f2+1], 출력 테이블 이름( "Both" ) );
닫기( Tables[f2] , 저장하지 않음 );
);
// Doube 행 삭제
ConcTable = 현재 데이터 테이블();
col_min = Parse( "Col Min( Row(), :Name(\!"" || Concat Items( ConcTable << get 열 이름( string ), "\!"), :Name(\!"" ) || "\!"))" );
중복 = [];
각 행에 대해( If( col_min != Row(), 중복 |/= Row() ) );
ConcTable << 행 삭제(중복);
ConcTable << 저장(Path_datatable_out||Final_Table);
//For(cc=1,cc <= nitems(Tables),cc++, Close(Tables[cc], No Save));
);
); // if 조건
답장을 기다리겠습니다.
신자
Re: 테이블을 연결하고 입력 파일을 닫습니다.다음은 작동하고 지정한 논리를 따르는 코드입니다. 그러나 나는 당신이 왜 이것을 하고 싶어하는지 이해할 수 없습니다....... 그래서 아마도 당신이 상상하는 것과 같은 결과가 나오지 않을 것입니다. 최종 결과가 무엇인지 회신하지 않으면.
Names Default To Here( 1 );
// Create sample tables
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << subset( selected rows( 0 ), selected columns( 0 ), by( :age ) );
Close( dt, nosave );
// Create your Tables list
Tables = {};
For( i = 1, i <= N Table(), i++,
Insert Into( Tables, Data Table( i ) << get name )
);
// Run the concatinations
For( f2 = 1, f2 < N Items( Tables ), f2++,
ConcTable = Data Table( Tables[f2] ) << Concatenate( Data Table( Tables[f2 + 1] ), Output Table Name( "Both" ) );
Close( Data Table( Tables[f2] ), No Save );
);