JSL을 통한 요약 테이블의 추가 기능추가 통계와 함께 요약 테이블을 얻을 수 있는 방법을 알고 싶습니다.
예를 들어, 방법() 수식에서 사용할 수 있는 함수이지만 작동하지 않습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary( Group( :Age ),
subgroup( :sex ),
Mode( :Height )); // Mode isntead of mean또한 그룹의 마지막 또는 첫 번째 번호를 가져와서 테이블을 요약하고 싶습니다.
고급 통계 모델링소비자 및 시장 조사콘텐츠 구성데이터 혼합 및 정리데이터 탐색 및 시각화실험 설계대량 맞춤화품질 및 프로세스 엔지니어링Re: JSL을 통한 요약 테이블의 추가 기능가시성(비공개, 보이지 않음, 표시됨)을 설정하여 요약 테이블(또는 모든 테이블 기능)을 훨씬 빠르게 만들 수 있습니다. 매우 큰 파일로 작업하고 모드를 추출하는 데만 필요했을 때 비공개를 사용했습니다.
Re: JSL을 통한 요약 테이블의 추가 기능나는 이 접근 방식을 테스트하고 있었지만 실현 가능하지 않습니다. 두렵습니다.
JMP는 큰 테이블(50만 개의 행과 수백 개의 열)에서 많은 항목을 재그룹화할 때 분포 표시를 사용하는 데 너무 오래 걸립니다.
반대로 요약 테이블의 기본 함수는 매우 빠르게 계산됩니다.
Re: JSL을 통한 요약 테이블의 추가 기능이것을 얻는 방법으로 배포 플랫폼을 사용하는 좋은 트릭입니다.
여기에 요청을 추가했습니다.정의된 함수(예: 모드, 커트, 스큐 등)로 요약 테이블 함수 확장
Re: JSL을 통한 요약 테이블의 추가 기능안녕 @FN ,
모드가 테이블 요약의 옵션이 아니더라도 원하는 것을 얻을 수 있는 많은 방법이 있어야 합니다. 배포 플랫폼의 추가 요약 통계 테이블에서 모드를 수동으로 요청하거나 다음을 클릭하여 요청할 수 있습니다. @ian_jmp 제안. 그렇지 않으면 brady_brady의 추가 기능을 사용해 보세요.
확장-요약-통계-JMP용 추가 기능 메뉴에서 모드를 나타냅니다.
또는 다음 스크립트를 시도하십시오.
Names Default To Here( 1 );
// Open Data Table: Big Class.jmp
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// get frequencies for modes
dt2 = dt << Summary(
Group( :Age, :sex, :height ),
Link to original data table( 0 )
);
// delete all rows that are not modes
dt2 << select where( Or( :N Rows != Col Max( :N Rows, :age, :sex ), :N Rows == 1 ) );
dt2 << delete rows;
// indicate first and last values per group - Not min and max unless table is first sorted!!!
dt << New Column( "id age", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sum( :age[Index( 1, Row() )] == :age ) ), eval formula, );
dt:id age << delete formula;
// remove all rows that are not first or last
dt << select where( And( :id age != Col Max( :id age, :age ), :id age != 1 ) );
dt << delete rows;
// create one table with all data and sort it
dt3 = dt << concatenate( dt2, Create source column );
dt3 << New Column( "Value",
Character,
"Ordinal",
Formula( If( :id age == 1, "First", :id age > 1, "Last", :N Rows > 1, "Mode" ) ),
Set Property( "Value Order", {Custom Order( {"First", "Mode", "Last"} ), Common Order( 0 )} ),
);
dt3 << sort( By( :age, :sex, :Value ), Order( Ascending ), replace table );
Big 클래스의 경우 모든 그룹에 클리어 모드가 있는 것은 아닙니다. 내 접근 방식은 가장 높은 빈도가 1인 것을 제거하는 것이었습니다.
작동하는지 또는 개선이 필요한 사항을 알려주십시오.
론
Re: JSL을 통한 요약 테이블의 추가 기능FWIW(및 JSL을 약간 알고 있는 경우) 다음과 같은 작업을 수행할 수 있습니다.
Names Default To Here( 1 );
// Sample data
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Invisible Distribution with 'By' group(s)
dist = dt << Distribution(Continuous Distribution(Column( :height ),Customize Summary Statistics(Mode(1))), By(:age, :sex), Invisible);
// Get the Summary Stats
dt2 = Report(dist[1])[TableBox(2)] << makeCombinedDataTable;
Report(dist[1]) << closeWindow;
// Retain only the Mode
dt3 = dt2 << Subset(Rows(dt2 << getRowsWhere(:Column 1 == "Mode")));
dt3 << setName("Mode Values");
Column(dt3, "Column 1") << setName("Statistic");
Column(dt3, "Column 2") << setName("Value");
Close(dt2, NoSave);
나는 또한 고려할 것이다 JMP 위시리스트 .
Re: JSL을 통한 요약 테이블의 추가 기능JMP에는 그룹화된 요약 통계를 생성하는 방법이 많이 있습니다. 모든 방법은 일부 통계를 제공하지만 다른 통계는 제공하지 않습니다.
배포 플랫폼과 헤더 통계는 다른 플랫폼(Graph Builder, JSL Col ... 기능)보다 훨씬 앞서 있습니다.
https://community.jmp.com/t5/Community-Wish-List/Wish-list-new-Label-user-experience/idc-p/771691/highlight/true#M60
다른 플랫폼의 프로그래머들도 따라잡기를 열망하고 있을 것 같습니다.