JSL을 사용하여 모든 데이터 테이블 연결안녕하세요. 열려 있는 모든 데이터 테이블을 연결하고 싶습니다. 그러나 데이터 테이블의 수는 다양할 수 있으므로 스크립트가 다양한 테이블 수에 맞게 조정될 수 있기를 바랍니다.
이것은 내가 하고 싶은 코드이지만 일반화하고 싶습니다.
데이터 테이블( N Table() ) << 연결(
데이터 테이블( (N Table()-1) ),
데이터 테이블( (N Table()-2) ),
데이터 테이블( (N Table()-3) ),
데이터 테이블( (N Table()-4) ),
데이터 테이블( (N Table()-5) ),
출력 테이블( "모든 온도"),
소스 열 생성
);
이것은 제가 시도한 코드입니다. 해결되지 않은 출력 테이블 이름 오류가 발생합니다. (이 경우 noTemps 는 6 입니다.)
데이터 테이블( N Table() ) << 연결(
For( i = 1, i < (noTemps), i++,
데이터 테이블( (N Table()-i) ),
);
출력 테이블( "모든 온도"),
소스 열 만들기
);
자동화 및 스크립팅데이터 접근데이터 혼합 및 정리Re: JSL을 사용하여 모든 데이터 테이블을 연결합니다.어떤 버전의 JMP를 사용하고 있나요?
Re: JSL을 사용하여 모든 데이터 테이블을 연결합니다.JMP16+라면 각각에 대해 사용하고 테이블 목록을 반복합니다.
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = dt1 << Subset(All Rows, Selected Columns(0), Output Table("DEMO"));
dts = Get Data Table List();
dt_first = Remove From(dts, 1); // remove first table as we concatenate to that
For Each({dt}, dts,
dt_first << Concatenate(
dt,
"Append to first table",
"Create source column"
);
// Close(dt, no save);
);Re: JSL을 사용하여 모든 데이터 테이블을 연결합니다.답변해 주셔서 감사합니다. 하지만 이 내용을 제 상황에 적용하기 위해 애쓰고 있습니다(비록 상대적으로 쉬울 것이라고 생각하지만).
dt란 무엇인가요? 이름이 해결되지 않은 오류가 발생합니다.
또한 스크립트의 이전 부분에서 모든 테이블이 이미 열려 있으므로 dt1이 할당되지 않았습니다. 특정 테이블을 직접 호출하지 않고 어떻게 할당할 수 있나요?
그러나 아래와 같이 dt1을 할당하면 데모 테이블이 생성되고 테이블은 데모라는 단어로 가득 차게 됩니다.
dt1 = Open( "$DOCUMENTS/Plot_Conduction_Losses/모듈 6/DUT2/100C.jmp" );
설명이 부족하고 장황하다면 죄송합니다.
Re: JSL을 사용하여 모든 데이터 테이블을 연결합니다.dt1과 dt2는 데모 목적으로만 존재합니다. Get Data Table List()를 사용하여 열려 있는 모든 테이블에 대한 참조를 가져옵니다. 어떤 JMP 버전을 사용하고 있습니까(각 버전에는 JMP16+가 필요하지만 For로 대체 가능)? dt 데이터 테이블 참조 목록에서 찾을 수 있는 데이터 테이블에 대한 참조입니다. dts.
Re: JSL을 사용하여 모든 데이터 테이블을 연결합니다.JMP 17이 있습니다.
이제 dt 부분을 이해했습니다. 혼란을 드려 죄송합니다.
dts = 데이터 테이블 목록 가져오기();
dt_first = 제거(dts, 1); // 연결하면서 첫 번째 테이블을 제거합니다.
각각에 대해({dt}, dts,
dt_first << 연결(
DT,
//첫 번째 테이블에 추가
"소스 열 생성",
출력 테이블( "모든 온도"),
);
//Close(dt, 저장 안함);
);
이것은 내가 원하는 것이 아닙니다. 이는 모두 dt_first와 연결된 6개의 새로운 데이터 테이블을 생성합니다.새로운 데이터 테이블이 되었으면 좋겠습니다. 주석을 제거하면 첫 번째 테이블 줄에 추가됩니다. 추가 분석에서 정렬하는 데 사용할 수 없는 6개의 소스 열이 생성됩니다.
Re: JSL을 사용하여 모든 데이터 테이블을 연결합니다.연결과 함께 목록을 사용할 수 있다는 것을 기억하지 못했습니다
Names Default To Here(1);
Open("$SAMPLE_DATA/Students.jmp");
Open("$SAMPLE_DATA/Students1.jmp");
Open("$SAMPLE_DATA/Students2.jmp");
dts = Get Data Table List();
dt_first = Remove From(dts, 1)[1]; // remove first table as we concatenate to that
dt_result = dt_first << Concatenate(dts, "Create source column");
또한 Remove From()이 목록을 반환하기 때문에 Remove From()에서 첫 번째 인덱스를 가져와야 합니다.