最初の列では、ランダム変数をシミュレートして母集団を作成します (たとえば、正規分布の 10000 行)。
次に、別の列で、前の列で作成された母集団から固定および抽出されるサイズ n のランダム サンプルを取得したいと思います。最良の方法は、並置された列で複数のサンプルを同時に取得することです。
ちなみに、私は JMP を数週間ほど使い始めたばかりですが (Minitab は何年も使っています)、グラフ作成時のサンプリングを除いて、自分で解決策を見つけることができませんでした。
よろしくお願いします。
これを行うには複数の方法があります。
最も簡単なのは、サブセットプラットフォームの組み込み機能を使用することです。
テーブル=>サブセット
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]
);
);
