첫 번째 열에서는 모집단을 생성하는 확률 변수를 시뮬레이션합니다(예: 정규 분포를 따르는 10,000개 줄).
그러면 다른 열에서 크기 n의 임의 표본을 구해 이전 열에서 만든 모집단에서 고정하고 추출하고 싶습니다. 가장 좋은 방법은 여러 개의 샘플을 나란히 배치한 컬럼에서 동시에 얻는 것입니다.
참고로, 제가 JMP를 알게 된 지 불과 몇 주 됐습니다(저는 Minitab을 수년간 사용해 왔습니다). 그래프를 만들 때 샘플링을 하는 것을 제외하고는 제 스스로 해결책을 찾지 못했습니다.
미리 감사드립니다.
이를 수행하는 방법은 여러 가지가 있습니다.
가장 간단한 방법은 Subset 플랫폼의 내장 기능을 사용하는 것입니다.
테이블 => 서브세트
1000개의 행이 있는 데이터 열이 있는 테이블이 주어졌습니다.

테이블=>하위 집합을 사용하면 지정된 백분율 또는 지정된 샘플 크기의 임의 샘플을 생성할 수 있습니다.

그러면 100개의 행이 있는 새 테이블이 생성됩니다.

그러면 이 테이블을 원래 테이블과 조인하는 것은 간단한 문제입니다.
테이블 => 조인

당신이 요청한 것을 얻을 것입니다

이 접근 방식의 가장 큰 문제점은 JMP 데이터 테이블의 가정을 어느 정도 위반한다는 것입니다.
또 다른 접근 방식은 열 공식을 사용하는 것입니다. 내가 생각해 낸 공식은 무작위 샘플을 생성하지만, 선택한 데이터를 처음 100개 행에 배치하는 대신 선택한 데이터가 나온 행에 값을 배치합니다.
공식은 다음과 같습니다.
As Constant(
rowCount = N Rows( Current Data Table() );
sampleMatrix = [];
For( i = 1, i <= 100, i++,
found = 0;
While( found == 0,
row = Random Integer( 1, rowCount );
If( N Rows( Loc( sampleMatrix, row ) ) == 0,
found = 1;
sampleMatrix = sampleMatrix || Matrix( row );
);
);
);
);
If( N Cols( Loc( sampleMatrix, Row() ) ) != 0,
:Column 1,
.
);
생산하는

이제 샘플 생성을 JSL로 옮기면 필요한 만큼 많은 샘플을 생성하는 것이 상당히 쉬운 작업이 됩니다.
Names Default To Here( 1 );
dt = Current Data Table();
rowCount = N Rows( dt );
// Create 5 Random Samples of 100
For( k = 1, k <= 5, k++,
dt << New Column( "Random" || Char( k ) );
sampleMatrix = [];
For( i = 1, i <= 100, i++,
found = 0;
While( found == 0,
row = Random Integer( 1, rowCount );
If( N Rows( Loc( sampleMatrix, row ) ) == 0,
found = 1;
sampleMatrix = sampleMatrix || Matrix( row );
);
);
);
// Write the values to the new column
For Each( {row}, sampleMatrix,
Column( "Random" || Char( k ) )[row] = :Column 1[row]
);
);
생성되는

약간의 수정으로 무작위 샘플 생성은 교체 없이 샘플링될 수 있습니다.
Names Default To Here( 1 );
dt = Current Data Table();
rowCount = N Rows( dt );
masterSampleMatrix = [];
// Create 5 Random Samples of 100
For( k = 1, k <= 5, k++,
dt << New Column( "Random" || Char( k ) );
sampleMatrix = [];
For( i = 1, i <= 100, i++,
found = 0;
While( found == 0,
row = Random Integer( 1, rowCount );
If( N Rows( Loc( masterSampleMatrix, row ) ) == 0,
found = 1;
sampleMatrix = sampleMatrix || Matrix( row );
masterSampleMatrix = masterSampleMatrix || Matrix( row );
);
);
);
// Write the values to the new column
For Each( {row}, sampleMatrix,
Column( "Random" || Char( k ) )[row] = :Column 1[row]
);
);
