列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力します。私の JSL スクリプトは 3 つの部分から構成されています。最初の部分では、50 ~ 1000 のランダムな整数が入った 100 行の数値列 (列 A) を作成しています。
2 番目の部分では、列 A の最大数を抽出し、それを変数 i に格納します。
3 番目の部分では、i を使用して、同じテーブルに i 個の新しい列を作成する for ループを作成しています。これはどのように実行できますか?
i にデータを保存できるようですが、for ループは実行されていません。
自動化とスクリプトウィンドウズRe: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力しますここに本当に簡単な例があります......
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << New Column( "A", formula( Random Integer( 50, 1000 ) ) );
i = Col Max( dt:A );
For( k = 1, k <= i, k++,
dt << New Column( "col" || Char( k ) )
);
Re: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力しますJMP14 にアクセスできないため、何が違うのか推測するしかありません。
ループがまったく実行されない可能性があります -> 最大値のデバッグ プリントを追加します
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
Show(max);
For(i = 1, i <= max, i++,
Show(i);
);
その他のデバッグケースでは、テーブルなしでループを試してください
Names Default To Here(1);
max = 10;
For(i = 1, i <= max, i++,
Show(i);
);
JMP14にデバッガがあったら(デバッガを動作させることは簡単ではないかもしれませんが)、それを試すこともできます。

Re: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力しますこれを実行すると、ログには /*; のみが表示されます。
Re: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力しますエラー メッセージが表示されていますか? 列は作成されていますが、値が正しくありませんか? for ループは実行されないが、列は作成されないとおっしゃいました (これらはおそらく別の問題です)。ループ内に Show(i); を追加すると、それらの値はログに正しく出力されますか?
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
Show(i);
);Re: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力しますこのコードには私のコードと同じ問題があります。コードを実行すると、for ループによって作成されるはずの列が作成されません。私は JMP 14 を使用しているので、少し古いバージョンです。
Re: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力しますコードを投稿していないので、何が間違っているのか判断するのは難しいです。これが動作する例です
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
dt << New Column(Char(i), Numeric, Continuous, Set Each Value(i));
);Re: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力します列 A から最大値を抽出したものがこれです。
X = Eval(Col Max(:Name("列A")));
次に、これを (i=1, i<=X ... ) として使用すると、
この for ループは実行されません。X が正しい数値を報告していることを確認しました。
Re: 列から最大値を抽出し、同じ JSL スクリプト内の for ループに入力します試してみたことを投稿していただけますか?