열 재정렬 질문JMP가 이름별로 내림차순으로 열을 정렬한다는 것을 알고 있습니다. 참조하는 테스트를 쉽게 식별할 수 있도록 테스트 사양에 표시되는 열의 이름을 지정해야 합니다. 16개의 채널[0 - 15]과 2개의 테스트 식별자[T & R]가 있습니다. 여러 열에 서로 다른 데이터 필드를 연결합니다. 예는 다음과 같습니다.이 순서는 모든 슬라이드를 움직여야 하기 때문에 파워포인트에 플롯하고 배치하는 것이 번거롭습니다. 예제에서 0, 1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9로 가는 것을 볼 수 있습니다. 이 문제를 해결하는 방법에 대한 쉬운 제안. 나는 그것을 00, 01, 02로 만들 수 있다는 것을 알고 있습니다.... 올바르게 주문하도록 하지만 내가 언급한 것처럼 우리 사양은 선행 0을 생략합니다.
CH0 R 상태 3 @ 주파수
CH0 R 상태 4 델타 앰프 @ 주파수
CH0 T 상태 1 @ 주파수
CH1 R 상태 3 @ 주파수
CH1 R 상태 4 델타 앰프 @ 주파수
CH1 T 상태 1 @ 주파수
CH10 R 상태 3 @ 주파수
CH10 R 상태 4 델타 앰프 @ 주파수
CH10 T 상태 1 @ 주파수
CH11 R 상태 3 @ 주파수
CH11 R 상태 4 델타 앰프 @ 주파수
CH11 T 상태 1 @ 주파수
Re: 열 재정렬 질문솔루션으로 보낸 마지막 응답을 표시하십시오.다른 사람이 나중에 올바른 솔루션을 찾는 데 정말 도움이 됩니다.
Re: 열 재정렬 질문글쎄요. 우리 IT 부서는 회사에 JMP 15를 배포하는 과정에 있습니다.
다시 감사합니다.Re: 열 재정렬 질문JMP 15를 사용하여 스크립트를 작성했는데
열( i ) << 이름 가져오기 .
그러나 귀하의 응답 후 돌아가서 JMP 14 및 이전 버전에서 JMP가 << get name의 결과를 가져오도록 하려면 Eval()이 필요하다는 것을 알았습니다.
Eval( 열( i ) << get name )
아래 코드는 JMP 15 및 이전 버전에서 작동합니다.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 12 ),
New Column( "Column 1", Character, "Nominal" ),
New Column( "CH0 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH0 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH0 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH1 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH1 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH1 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH10 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH10 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH10 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH11 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH11 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH11 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) )
);
Wait( 5 ); // Wait 5 seconds so one can see the original example table
// If a column name starts with "CH" adjust the name
For( i = 2, i <= N Cols( dt ), i++,
If( Substr( Column( i ) << get name, 1, 2 ) == "CH",
Column( i ) << set property( "Original Name", Eval( Column( i ) << get name ) );
tempName = Substr( Column( i ) << get name, 3 );
number = Word( 1, tempName, " " );
tempName = Substr( tempName, Length( number ) + 2 );
number = Substr( "00", Length( number ) ) || number;
tempName = "CH" || number || " " || tempName;
Column( i ) << set name( tempName );
)
);
// Reorder the table names
dt << reorder by name;
// Replace the column names with the original names
For( i = 1, i <= N Cols( dt ), i++,
If( Is Empty( Column( i ) << get property( "Original Name" ) ) == 0,
Column( i ) << set name( Column( i ) << get property( "Original Name" ) );
Column( i ) << delete property( "Original Name" );
)
);
Re: 열 재정렬 질문도움을 주신 짐님께 감사드립니다... 01 - 10이 올바르게 주문되도록 선행 '0'을 추가할 때 무엇을 하고 있는지 알 수 있습니다. 이름을 원래 이름으로 다시 변경해야 하는 스크립트 부분이 실행되는 것처럼 보이지만 열은 변경되지 않습니다. 열 정보에 들어가 열 속성에 'column( i ) << Get Name'이 표시됩니다. 이것이 실제 이름입니까? 아니면 실제 이름입니까? 열 속성을 제거하지만 열 이름을 바꾸지 못합니다.Re: 열 재정렬 질문다음은 예제 데이터의 경우 숫자를 3자리 숫자로 변환하고 이름별로 열을 재정렬한 다음 열 이름을 다시 원래 이름으로 재설정하는 샘플 스크립트입니다.
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 12 ),
New Column( "Column 1", Character, "Nominal" ),
New Column( "CH0 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH0 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH0 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH1 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH1 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH1 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH10 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH10 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH10 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH11 R State 3 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH11 R State 4 Delta Amp @ Freq", Numeric, "Continuous", Format( "Best", 10 ) ),
New Column( "CH11 T State 1 @ Freq", Numeric, "Continuous", Format( "Best", 10 ) )
);
wait(5); // Wait 5 seconds so one can see the original example table
// If a column name starts with "CH" adjust the name
For( i = 1, i <= N Cols( dt ), i++,
If( Substr( Column( i ) << get name, 1, 2 ) == "CH",
Column( i ) << set property( "Original Name", Column( i ) << get name );
tempName = Substr( Column( i ) << get name, 3 );
number = Word( 1, tempName, " " );
tempName = Substr( tempName, Length( number ) + 2 );
number = Substr( "00", Length( number ) ) || number;
tempName = "CH" || number || " " || tempName;
Column( i ) << set name( tempName );
)
);
// Reorder the table names
dt << reorder by name;
// Replace the column names with the original names
For( i = 1, i <= N Cols( dt ), i++,
If( Is Empty( Column( i ) << get property( "Original Name" ) ) == 0,
Column( i ) << set name( Column( i ) << get property( "Original Name" ) );
Column( i ) << delete property( "Original Name" );
)
);
Re: 열 재정렬 질문말씀하신 내용을 처리하려고 하는데 잘 모르겠습니다.. 예를 들어 주시겠습니까?
감사해요Re: 열 재정렬 질문당신은 나를 혼란스럽게합니다. 올바르게 이해했다면 열을 사전순으로 재정렬하고 싶지만 열 이름에 0이 아닌 숫자가 채워져 있습니다. 그래서 귀하의 질문은 숫자가 0으로 채워진 것처럼 열을 올바르게 재정렬하는 방법이라고 생각합니다. 그것은 데이터 테이블에 얼마나 많은 행이 있는지와 관련이 없습니다. 따라서 위의 제안은 여전히 유지되어야 합니다. 데이터 테이블을 읽으면 원래 이름을 새 열 속성에 저장하는 작은 스크립트를 만들고, 열 이름이 0으로 채워진 이름을 갖도록 변경하고, 열을 재정렬한 다음 열에서 다시 반복하여 이름을 변경할 수 있습니다. 원래 열 이름으로 돌아갑니다.
데이터는 변경하지 않고 열 이름만 변경하므로 매우 빠르게 실행됩니다.
내가 무엇을 놓치고 있습니까?Re: 열 재정렬 질문고마워 짐..
내 SQL 스크립트에서 이 열을 생성한다는 것을 언급하는 것을 잊었습니다. 약 200만 행의 데이터를 가져오는 것을 고려하여 시간을 절약하기 위해 테이블이 실제로 JMP에 도달하기 전에 가능한 한 많이 하려고 합니다. 따라서 열은 원래 열이 됩니다.Re: 열 재정렬 질문이름을 필요한 형식으로 변경하는 스크립트를 사용하여 이 문제를 처리한 다음 Reorder by Name을 사용할 수 있습니다.항상 이름을 다시 변경할 수 있도록 먼저 스크립트에서 "Original Name"이라는 열 속성을 만듭니다.스크립트가 이름을 변경하면 다음을 실행할 수 있습니다.
dt << 이름으로 재정렬
그런 다음 열 이름을 다시 반복하고 "Original Name" 열 속성에서 값을 가져오고 열 이름을 다시 원래 이름으로 설정할 수 있습니다.