루프로 동일한 jmp 데이터 세트 결합(스크립팅)구조적으로 동일한 데이터 세트가 100개 있습니다. 그들 모두는 해당 데이터 세트의 이름을 포함하는 ID와 상수/필드를 포함합니다.
그것들을 연결하는 것은("long" 형식) 쉽습니다.
이제 "와이드" 형식으로 병합해야 합니다. 똑같이 쉽습니까?
이 상수를 각 JMP 데이터 세트에 대한 접두사로 사용하는 방법을 생각합니다. 하지만 루프에서 어떻게 작동하게 할 수 있습니까?
제안 사항이 있습니까?
대단히 감사합니다 그리고 친절한 안부
초보자
Re: 루프로 동일한 jmp 데이터 세트 결합(스크립팅)데이터 세트가 무엇을 나타내는지 또는 결과적으로 결합된 데이터 세트가 무엇을 위한 것인지 상상할 수 없습니다. 해당 정보는 문제를 더 잘 해결하는 데 도움이 될 수 있습니다. 데이터 세트가 구조가 동일하고 반복되는 상수만 포함하는 경우 문제에 대해 보다 효율적인 데이터 구조와 데이터 방법이 있는 것 같습니다.
결합된 데이터 세트를 사용하여 JMP에서 무엇을 하시겠습니까?
Re: 루프로 동일한 jmp 데이터 세트 결합(스크립팅)다음은 귀하가 제공한 새로운 정보를 고려하여 원래 스크립트를 재작업한 것입니다.
또한 연결된 데이터 테이블을 사용하여 살펴보고 싶을 수도 있습니다.
테이블==>분할
그것은 당신이 원하는 것에 매우 가깝게 만들 수 있습니다
Names Default To Here( 1 );
// Create example data tables to be used in the merging
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
constants = "ABCDEFGHIJKLMNOP";
dt << delete columns( {"Subject", "Dose"} );
dt << New Column( "ID", character, formula( Char( Row() ) ) );
dt << Go To( :ID );
dt << Move Selected Columns( To First );
For( i = 2, i <= N Cols( dt ), i++,
Current Data Table( dt );
dt2 = dt << subset( selected rows( 0 ), columns( :ID, Column( i ) ) );
Column( dt2, 2 ) << set name( "Value1" );
dt2 << New Column( "Value2", formula( Floor( :Name( "Value1" ) + Random Integer( 5 ) ) ) );
dt2 << New Column( "Constant", character, set each value( Substr( constants, i - 1, 1 ) ) );
);
Wait( 0 );
Close( dt, nosave );
// Merge the tables together
// Get the table Names
tableList = {};
For( i = 1, i <= N Table(), i++,
Insert Into( tableList, Data Table( i ) << get name )
);
theConstant = Column( Data Table( tableList[N Items( tableList )] ), "Constant" )[1];
Data Table( tableList[N Items( tableList )] ) << New Column( theConstant || "_ID", character, formula( :ID ) );
Column( Data Table( tableList[N Items( tableList )] ), "Value1" ) << set name( theConstant || "_Value1" );
Column( Data Table( tableList[N Items( tableList )] ), "Value2" ) << set name( theConstant || "_Value2" );
// Loop across the tables and using Update put them back together
For( i = N Items( tableList ) - 1, i >= 1, i--,
theConstant = Column( Data Table( tableList[i] ), "Constant" )[1];
Data Table( tableList[i] ) << New Column( theConstant || "_ID", character, formula( :ID ) );
Column( Data Table( tableList[i] ), "Value1" ) << set name( theConstant || "_Value1" );
Column( Data Table( tableList[i] ), "Value2" ) << set name( theConstant || "_Value2" );
Data Table( tableList[N Items( tableList )] ) << Update( With( Data Table( tableList[i] ) ), Match Columns( :ID = :ID ) );
);
Re: 루프로 동일한 jmp 데이터 세트 결합(스크립팅)무슨 이유에서인지 금요일 오후의 내 글이 길을 잃은 것 같았습니다...
그것은 당신이 기차를 일할 때 지불하는 가격이거나 그렇게 보입니다.
100개의 데이터 세트가 있으며 각각 다른 상수를 포함합니다.
예
데이터세트1
ID 상수 VALUE1 VALUE2
1A 123 123
2A 123 123
데이터세트2
1B 456 456
2B 456 456
데이터셋3
1C 789 789
2C 789 789
내가 원하는 것은 다음 구조의 단일 데이터 세트로 가져오는 것입니다.
A_ID A_CONSTANT A_VALUE1 A_VALUE2 B_ID B_CONSTANT B_VALUE1 B_VALUE2
1A 123 123 1B 456 456
2 A 123 123 2 B 456 456 등,
거기에 가는 두 가지 방법이 있습니다.
(1) 먼저 각 데이터 세트 내의 각 단일 열에 접두사를 추가한 다음 ID별로 병합하거나
(2) 먼저 모든 데이터 세트에 내용을 부여한 다음 상수 수준을 접두사로 사용하여 전치/뒤집기/루프합니다(그러나 JMP는 혼합 데이터 유형을 좋아하지 않는다는 것을 알았습니다)
거기에 어떻게 가나... ?
큰 도움을 주시면 감사하겠습니다
초보자
Re: 루프로 동일한 jmp 데이터 세트 결합(스크립팅)안녕하세요 Tx님,
지금은 JMP에 액세스할 수 없지만(여행 중입니다) 결과는 다음과 같아야 합니다.
이제 구조 자체를 보면 연결한 다음 연결된 테이블을 뒤집거나 반복하는 것이 간단한 접근 방식일 수 있다고 생각합니다(ID는 그다지 중요하지 않음). 그러나 이것이 가장 간단한 (매크로) 루프로 해결할 수 있는지 여부를 여전히 배우고 싶습니다.
파일1:
ID 상수 값
1 AB 123
2 AB 456
파일2:
ID 상수 값
1 방어력 123
2 데프 456
...
파일100:
ID 상수 값
1Z 123
2Z 456
CONSTANT의 "Loop"
원하는 결과
AB_ID AB_상수 AB_값 DEF_ID DEF_ 상수 DEF_값 ... Z_ID Z_ 상수 Z_값
1 AB 123 1 DEF 123 ... 1 Z 123
2 AB 456 2 DEF 456 ... 2 Z 123
Re: 루프로 동일한 jmp 데이터 세트 결합(스크립팅)출력 데이터 테이블이 어떻게 생겼는지 정확히 알지 못하지만, 여기에 귀하의 설명 구조와 유사한 데이터 테이블을 병합하는 간단한 예가 있습니다.
Names Default To Here( 1 );
// Create example data tables to be used in the merging
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << delete columns( {"Subject", "Dose"} );
dt << New Column( "ID", character, formula( "A" || Char( Row() ) ) );
dt << Go To( :ID );
dt << Move Selected Columns( To First );
For( i = 2, i <= N Cols( dt ), i++,
current data table(dt);
dt2 = dt << subset( selected rows( 0 ), columns( :ID, Column( i ) ) );
dt2 << New Column("Table Name", character, set each value(dt2<<GET name=""></GET>