再実行:毎回ループを実行するファイルの更新(JSL)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />上記のスクリプトで使用したデータファイル(スクリプトの実行中にXLにインポートしたもの)をアップロードしました。
私のスクリプトは次のとおりです。-
グローバルの消去();
dt = open();
k = 5。
collect_means = {}; collect_stdevs = {}; collect_group_std = {};
(l = 1、l <= 2、l ++、
show(k);
(i = 1、i <= 3、i ++、// 3回)
nt = dt << Subset(
出力テーブル( "サブセット")
サンプルサイズ(k)、// 5サンプル
;
要約する(m =平均(:データ)、s =標準偏差(:データ))。
に挿入(collect_means、m、0);
に挿入(collect_stdevs、s、0);
// close( "subset"、nosave);
;
新しいテーブル( "ファイナル"、
新しい列( "means"、設定値(collect_means))、
新しい列( "stddevs"、設定値(collect_stdevs))、
//新しい列( "Group Std"、式(col std dev(:means))))
;
// pt <<概要(Group、Std Dev(:means));
pt =データテーブル( "最終")<<要約(p = std dev(:means));
に挿入(collect_group_std、p、0);
// close( "Final"、nosave);
k = k + 5。
;
新しいテーブル( "Groups"、新しい列( "Summary Group"、設定値(collect_group_std)));
上記のスクリプトの "Final"シートは、外側のForループが実行されるたびに更新する必要があります。しかし、今、「最終シート」は更新されず、前の「最終」シートを使用していません(前の繰り返しからのシートを使用しています)。
再実行:毎回ループを実行するファイルの更新(JSL)ところで、リストやたくさんの中間テーブルを使うのはあまり効率的ではありません。ここではすべてのデータが数値であり、サブセットとファイナルテーブルはデータの一時的なホルダーとして機能する以外には重要ではないようです。この場合、特に大規模なデータセットの場合は、代わりにはるかに効率的な行列を使用することをお勧めします。
これを試して、上記のスクリプトとパフォーマンスを比較してください。
クリアグローバル () ;
dt = データ表 ( "サンプルデータ" ) ;
collect_group_std = [] ;
ks = [] ;
にとって ( k = 5 、 k <= 10年 、 k = k + 5 、
collect_means = [] ;
ks = ks | / k ;
にとって ( 私 = 1 、私 <= 3 、私 ++、 //3回
サブ = ランダムインデックス ( N行 ( dt ) 、 k ) ;
collect_means = collect_means | / 平均 ( dt : データ [ サブ ] ) ;
見せる ( collect_means ) ;
) ;
collect_group_std = collect_group_std | / Std Dev ( collect_means ) ;
) ;
新しいテーブル ( 「グループ」 、新しいコラム ( "k" 、 setvalues ( ks ) ) 、新しいコラム ( 「サマリーグループ」 、設定値 ( collect_group_std ) ) ) ;
再実行:毎回ループを実行するファイルの更新(JSL)要約関数はメッセージとして使用しないでください。同じ列名を持つ複数のテーブルを扱う場合は、テーブルをコンテキスト内に明示的に含めることをお勧めします(ちょうど:Dataではなくdt:Data)。 そして、私があなたがここで何を達成したいのか正確にはわかりませんが、リストはしないでください。 collect_meansとcollect_stdevsはそれぞれの外側のforループに対してリセットされますか?
以下は、いくつかの小さな変更を加えたあなたのコードです。
クリアグローバル () ;
dt = データ表 ( "サンプルデータ" ) ;
k = 5 ;
collect_group_std = {} ;
にとって ( l = 1 、 l <= 2 、 l ++、
collect_means = {} ;
collect_stdevs = {} ;
見せる ( k ) ;
にとって ( 私 = 1 、私 <= 3 、私 ++、 //3回
nt = dt << サブセット (
出力テーブル ( 「サブセット」 ) 、
サンプルサイズ ( k ) 、 // 5サンプル
) ;
要約する ( メートル = 平均 ( nt : データ ) 、の = Std Dev ( nt : データ ) ) ;
に挿入 ( collect_means 、メートル 、 0 ) ;
に挿入 ( collect_stdevs 、の 、 0 ) ;
//閉じる(nt、nosave);
) ;
pt = 新しいテーブル ( "最後の" 、
新しいコラム ( "手段" 、設定値 ( collect_means ) ) 、
新しいコラム ( "stddevs" 、設定値 ( collect_stdevs ) ) 、
) ;
要約する ( p = Std Dev ( pt : 手段 ) ) ;
に挿入 ( collect_group_std 、 p 、 0 ) ;
//閉じる(pt、nosave);
k = k + 5 ;
) ;
新しいテーブル ( 「グループ」 、新しいコラム ( 「サマリーグループ」 、設定値 ( collect_group_std ) ) ) ;