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을 통한 요약 테이블에 대한 추가 기능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을 통한 요약 테이블에 대한 추가 기능안녕하세요 @FN ,
모드가 테이블 요약의 옵션이 아니더라도 원하는 것을 얻을 수 있는 많은 방법이 있어야 합니다. 배포 플랫폼의 추가 요약 통계 표에서 모드를 수동으로 요청하거나 다음을 클릭하여 요청할 수 있습니다. @ian_jmp 제안. 그렇지 않으면 brady_brady의 추가 기능을 사용해 보십시오.
Extended-Summary-Statistics-Add-in-for-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을 통한 요약 테이블에 대한 추가 기능이를 얻기 위한 방법으로 배포 플랫폼을 사용하는 멋진 트릭입니다.
여기에 요청을 추가했습니다.정의된 함수(예: 모드, 커트, 스큐 등)로 요약 테이블 함수 확장
Re: JSL을 통한 요약 테이블에 대한 추가 기능나는 이 접근 방식을 테스트하고 있었고 실현 가능하지 않습니다.
JMP는 큰 테이블(50만 행 및 수백 개의 열)에서 많은 항목을 재그룹화할 때 표시 분포를 사용하는 데 너무 오래 걸립니다.
반대로 요약 테이블의 기본 함수는 매우 빠르게 계산됩니다.