여러 열의 ID를 기준으로 평균을 부분 집합으로 나눌 수 있나요?여러 데이터 열에서 평균을 구하고 이를 별도의 데이터 테이블로 하위 집합화하는 JSL 스크립트가 필요합니다. 그러나 여러 범주 식별자로 평균을 그룹화해야 합니다. 예를 들어, 아래 데이터 테이블의 경우 두 번째 예제 테이블에 표시된 대로 SubjectA Group X와 Subject A Group y의 평균을 별도의 줄로 표시해야 합니다. 이전 질문과 비슷한 내용입니다. 여러 열의 평균을 포함하도록 스크립트를 어떻게 수정해야 합니까? 원본 데이터 테이블에서 평균 열을 만들고 별도로 하위 집합화해야 하는 경우에도 작동합니다.
예제 소스 테이블:
| 주제 | 그룹 | 데이터 A | 데이터 B |
| A | x | 5 | 2 |
| A | y | 0 | 2 |
| A | x | 5 | 0 |
| B | z | 5 | 2 |
| B | x | 5 | 2 |
| B | x | 5 | 2 |
출력 테이블 예:
| 주제 | 그룹 | 데이터 A 평균 | 데이터 B 평균 |
| A | x | 5 | 1 |
| A | y | 0 | 2 |
| B | x | 5 | 2 |
| B | z | 5 | 2 |
저는 Windows에서 JMP Pro 18을 사용하고 있습니다.
자동화 및 스크립팅데이터 블렌딩 및 정리윈도우Re: 여러 열의 ID를 기준으로 평균을 부분 집합으로 나누는 것?안녕하세요 @Mcc99 ,
이를 수행하는 방법은 여러 가지가 있지만 가장 쉬운 방법 중 하나는 Tabulate 플랫폼을 사용하는 것입니다.
귀하가 제공한 샘플 데이터 테이블을 사용하면 약간의 JSL만으로 이를 수행할 수 있습니다.
Tabulate(
Add Table(
Column Table( Analysis Columns( :Data A, :Data B ), Statistics( Mean ) ),
Row Table( Grouping Columns( :Subject, :Group ) )
)
);
Tabulate 플랫폼의 해당 출력은 다음과 같습니다.

제 생각에는 정확히 여러분이 원하는 것입니다. 물론 다른 방식으로 Tabulate를 포함하거나 수행하기 위해 더 많은 통계를 추가할 수 있지만, 이것이 여러분이 원하는 것이라고 생각합니다. 그런 다음 완료를 클릭하고 빨간색 핫 버튼 드롭다운 메뉴에서 데이터 테이블로 만들기를 선택한 다음 플랫폼에서 데이터 테이블을 가져올 수 있습니다(JSL을 사용하여 이 모든 작업을 수행할 수도 있습니다).
이전에 참조한 게시물은 대신 열 수식을 사용한 것 같습니다. 제가 제안했을 다른 방식이었지만, 이미 답변이 나와 있으므로 원하는 방식이라면 언제든지 해당 게시물을 더 자세히 검토할 수 있습니다. 하지만 저는 Tabulate 플랫폼이 정말 원하는 것이라고 생각합니다. 다른 그룹화 열 등을 가지고 놀면서 데이터가 어떻게 바뀌는지 확인할 수 있습니다.
도움이 되길 바랍니다!
디에스
Re: 여러 열의 ID를 기준으로 평균을 부분 집합으로 나누는 것?고맙습니다! 저는 tabulate를 사용할 생각조차 하지 않았지만, 그것은 제 스크립트를 column 수식보다 훨씬 더 깔끔하게 만들어줍니다. 하지만 저는 tabulate 테이블을 새 데이터 테이블로 저장하는 데 문제가 있습니다. 저는 위의 tabulate 스크립트 뒤에 아래 스크립트를 추가했습니다. tabulate 창은 열리지만 새 데이터 테이블은 열리지 않습니다.
<< Make Into Data Table(Outputtable("Average data"));Re: 여러 열의 ID를 기준으로 평균을 부분 집합으로 나누는 것?@Mcc99
고려할 수 있는 또 다른 옵션은 Table > Summary를 사용하는 것입니다. Preview 창은 특히 여러 열로 그룹화할 때 올바른 출력을 얻는 데 도움이 됩니다.
표 > 요약:

소스 스크립트:
Data Table( "Data Table Name" ) << Summary(
Group( :Subject, :Group ),
Mean( :Data A ),
Mean( :Data B ),
Freq( "None" ),
Weight( "None" ),
output table name( "Summary of Data Table Name by Subject, Group" )
);
Re: 여러 열의 ID를 기준으로 평균을 부분 집합으로 나누는 것?안녕하세요 @Mcc99 ,
JSL에서 객체를 올바르게 참조하고 있나요? 아래 코드를 사용하면(예시와 같이 데이터 테이블 구조로 작업한다고 가정) Tabulate를 사용하여 올바른 표 형태의 데이터 테이블을 생성한 다음, 주어진 이름의 데이터 테이블로 만들고 Tabulate 창을 닫습니다.
Names Default To Here( 1 );
dt = Current Data Table();
dttab = dt << Tabulate(
Add Table(
Column Table( Analysis Columns( :Data A, :Data B ), Statistics( Mean ) ),
Row Table( Grouping Columns( :Subject, :Group ) )
)
);
dttab << Make Into Data Table( OutputTable( "Average Data" ) );
dttab <<CLOSE window=""></CLOSE>
<P>도움이 되길 바랍니다!</P>
<P>디에스</P>