테이블의 모든 숫자 열을 표로 만들기안녕,
모든 숫자 열(및 범주형 열이 있는 또 다른 열)을 포함하는 테이블 테이블을 만들려고 합니다.
나는 이것을 실행하려고했지만 작동하지 않습니다.
어떠한 제안?
TIA
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
NumericCols = {};
for(i = 1, i <= N Cols(dt), i++,
Col = Column(dt,i);
ColDataType = Col << Get Data Type;
If( ColDataType == "Numeric",
Insert Into(NumericCols,Col << Get Name);
);
);
Tabulate(
Set Format( Uniform Format( 10, 2 ) ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Statistics( Mean ) ),
Column Table( Statistics( Std Dev ) ),
Column Table( Statistics( Min ) ),
Column Table( Statistics( Max ) ),
Column Table( Statistics( Median ) ),
Row Table(
Analysis Columns(
NumericCols = {}
)
)
)
)Re: 테이블의 모든 숫자 열을 표로 만듭니다.추신.
숫자 대신 연속 열에서 작동하도록 이 코드를 다시 작성했습니다. 실제로 명목상이지만 숫자 데이터와 값 레이블이 있는 여러 열이 있기 때문에 이것이 내 요구에 더 적합합니다.
다음은 내가 사용한 최종 코드입니다.
Names Default To Here( 1 );
dt = currentdatatable();
continuousCols /*NumericCols */ = dt << get column names( continuous /*numeric*/ );
dt << Tabulate(
Set Format( Uniform Format( 10, 2 ) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Statistics( Mean, Std Dev ) ),
Column Table( Statistics( Min, Max ) ),
Column Table( Statistics( Median ) ),
Row Table( Analysis Columns( Eval( continuousCols /*NumericCols */ ) ) )
)
);
도와 주셔서 정말로 고맙습니다!
Re: 테이블의 모든 숫자 열을 표로 만듭니다.다음은 원하는 작업을 수행하는 한 가지 방법입니다.
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
CharacterCols = dt << get column names( nominal );
// Build a string variable that contains the required JSL
theExpr =
"dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N, Name( \!"% of Total\!" ) ) ),";
For( i = 1, i <= N Items( CharacterCols ), i++,
theExpr = theExpr ||
"Row Table( Grouping Columns( " || char(CharacterCols[i]) || ") ),";
);
theExpr = theExpr || "));";
// Execute the JSL
eval(parse(theExpr));
다른 커뮤니티 회원이 더 나은 방법을 사용할 수 있습니다.
Re: 테이블의 모든 숫자 열을 표로 만듭니다.나와 함께 해주셔서 다시 한 번 감사드립니다. 보낸 두 번째 코드는 여전히 필요한 결과를 제공하지 않습니다.
이전 게시물에 게시한 코드의 결과와 귀하의 코드에서 얻은 결과를 얻으려고 하는 결과를 아래에서 확인하십시오.
이것이 내가 얻고 싶은 것입니다.

이것은 게시 된 코드를 사용하여 얻는 것입니다.

TIA
Re: 테이블의 모든 숫자 열을 표로 만듭니다.문제는 Tabulate 코드에 있지 않습니다.제가 제공한 Tabulate 코드는 잘 작동할 것입니다.문제는 표에 포함할 열을 설정하는 데 있습니다.내가 보낸 마지막 코드에서 명령문은
CharacterCols = dt << get column names( character );
CharacterCols 목록에 Data Type Character인 데이터 테이블의 모든 열을 넣습니다.그리고 Tabulate는 Lot ID의 Lot_id, Wafer ID 열과 함께 올바르게 실행되었습니다.문자 데이터 유형인 데이터 테이블의 유일한 2개 열입니다.Classification 변수에 대한 귀하의 요청이 두 번째 Tabulate, 즉 Character 열에 포함된다는 것은 저의 오해였습니다.그러나 분류가 표에 Wafer 및 Site를 포함해야 한다는 수정 사항으로 인해 CharacterCols 열 목록을 다르게 생성해야 합니다.원하는 모든 열을 포함하는 것은 모델링 유형이 "명목"인 모든 열과 함께 해당 목록을 로드하는 것입니다.따라서 진술을 다음과 같이 간단히 변경합니다.
CharacterCols = dt << get column names( nominal );
CharacterCols 목록에 배치합니다. {lot_id, wafer, 로트 ID의 웨이퍼 ID, SITE};
수정된 JSL은 다음과 같습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
CharacterCols = dt << get column names( nominal );
dt << Tabulate(
Set Format( Name( "% of Total" )(9, 0) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Row Table( Grouping Columns( eval( CharacterCols ) ) )
)
);
Re: 테이블의 모든 숫자 열을 표로 만듭니다.답장을 보내 주셔서 감사합니다. 게시한 코드가 필요한 테이블을 제공하지 않습니다.
여기에 내가 필요한 테이블을 제공하는 데이터 파일 exampleole에 대한 코드가 있습니다.
출력이 다르다는 것을 알 수 있습니다.
Tabulate(
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Row Table( Grouping Columns( :lot_id ) ),
Row Table( Grouping Columns( :wafer ) ),
Row Table( Grouping Columns( :Wafer ID in lot ID ) ),
Row Table( Grouping Columns( :SITE ) )
)
);
차이가 있다고 가정한 이유는 여기에 각 행 테이블이 별도로 명시되어 있지만 수치 데이터에서는 모두 동일한 아래에 있기 때문입니다.
"행 테이블(분석 열("
그런 다음 쉼표로 구분된 열 이름 목록입니다.
이로 인해 숫자에는 간단한 목록을 사용할 수 있지만 문자에는 사용할 수 없다고 생각했습니다.
에 대한 참조에 감사드립니다. 스크립팅 가이드 꼭 공부할 시간을 찾아야 합니다!
Re: 테이블의 모든 숫자 열을 표로 만듭니다.표 구문은 다음과 같습니다. 아니다 "Analysis Columns"라는 단어가 "Grouping Columns"로 변경된 것을 제외하고는 완전히 다릅니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
CharacterCols = dt << get column names( Character );
dt << Tabulate(
Set Format( Name( "% of Total" )(9, 0) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Row Table( Grouping Columns( eval( CharacterCols ) ) )
)
);
구문이 크게 다르다고 생각한 이유가 무엇인지 알고 싶습니다.분석 열에 대한 샘플 표를 대화식으로 실행하고 JMP가 실행한 샘플에 대한 JSL을 제공하도록 한 다음 문자 열에 대해 동일한 작업을 반복한다고 가정합니다.그러면 거의 동일한 JSL이 표시되었을 것입니다.나는 당신이 내린 결론에 이르게 된 원인을 파악하여 가능한 한 쉽게 스크립트를 만들 수 있도록 도와드리고 싶습니다.
아....그리고 스크립팅 가이드를 읽어야 합니다.....읽는 것을 대신할 수 있는 것은 없습니다.
Help==>JMP 문서 라이브러리...……..스크립팅 가이드
Re: 테이블의 모든 숫자 열을 표로 만듭니다.안녕,
정말 감사합니다!
이제 범주형 열의 구문이 완전히 다르다는 것을 알 수 있습니다.
다음과 같은 테이블을 원하는 경우 어떻게 하시겠습니까?
Set Format( Name( "% of Total" )(9, 0) ),
Add Table(
Column Table( Statistics( N, Name( "% of Total" ) ) ),
Re: 테이블의 모든 숫자 열을 표로 만듭니다.다음은 숫자 열 이름을 가져오는 간단한 방법을 사용하는 코드를 다시 작성한 다음 숫자 열 목록 주위에 Eval() 함수를 추가하여 작동하도록 합니다.
.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
NumericCols = dt << get column names( numeric );
dt << Tabulate(
Set Format( Uniform Format( 10, 2 ) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( N ) ),
Column Table( Statistics( Mean, Std Dev ) ),
Column Table( Statistics( Min, Max ) ),
Column Table( Statistics( Median ) ),
Row Table( Analysis Columns( Eval( Numericcols ) ) )
)
);
Re: 테이블의 모든 숫자 열을 표로 작성합니다.실수로 위의 질문을 수정하여 질문을 제가 답변한 내용으로 변경했습니다. @eliyahu100 실수해서 사과드립니다.