行全体で値を乗算するための For ループのスクリプト作成こんにちは、
私は JMP でのスクリプト作成にかなり慣れておらず、解決策を求めて多くの jmp フォーラムを調べましたが、特定の問題に対する解決策を変更することに成功していません。
列数が不明なテーブルを生成するスクリプトがあり、行内の各値を生成された列 (列 1 * 列 2 * 列 3* など) 全体で乗算したいと考えています (生成されるテーブルには 1 行のみです)。 例としてテーブルを簡略化しましたが、実際のテーブルにはさらに多くの列が含まれる可能性があります。
私のループは各行と次の行を掛け合わせますが、すべての行を掛け合わせた最終的な答えは得られません。 また、すべての値を乗算した最終積が必要なだけであり、各増分値の積は必要ありません。 ご協力をよろしくお願いいたします。
New Table( "tsp",
Add Rows( 1 ),
New Column( "Row 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.975] )
),
New Column( "Row 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.985] )
),
New Column( "Row 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.983] )
),
New Column( "Row 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.839] )
),
);
Ncol = N col(tsp);
For( i = 1, i <= Ncol, i++,
For( j = i + 1, j <= Ncol, j++,
RTP = Eval( Column( i ) << Get Name ) || " * " || Eval( Column( i+=1 ) << Get Name );
New Column( RTP, Numeric , seteachvalue( Column( i )[] * Column( i+=1 )[]) );
)
);
品質およびプロセスエンジニアリングRe: 行全体で値を乗算するための For ループのスクリプト作成nvm 空であるはずの最後の括弧に 1 が含まれているというエラーを見つけました。私のコードはこうあるべきでした。
tsp << New Column("RTP", numeric, continuous, Format(Percent, 1));
for each row(:RTP= Product( i = 2, N Col( tsp), Column( tsp, i )[] ))Re: 行全体で値を乗算するための For ループのスクリプト作成この数式を繰り返すために複数の行がある状況で、これを For Each Row に入れようとしましたが、機能していないようで、エラーが何なのかわかりません。正しい値が得られます。 「RTP」では、最初の行「A」(86.9%)が表示され、残りの行はすべて異なるはずであるにもかかわらず、同じ値(75.5%)を示します...
New Table( "tsp",
Add Rows( 5 ),
New Column( "Site",
Character,
"Nominal",
Set Selected,
Set Values( {"A", "B", "C", "D", "E"} )
),
New Column( "Row 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.974, 0.872, 0.927,
0.974, 0.9033]
)
),
New Column( "Row 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.968, 0.902, 0.931, .,
0.962]
)
),
New Column( "Row 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.944, 0.968, 0.987, ., .]
)
),
New Column( "Row 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.9847, 0.9471, ., ., .] )
),
New Column( "Row 5",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.990, 0.994, ., ., .] )
)
);tsp << New Column("RTP", numeric, continuous, Format(Percent, 1));
for each row(:RTP= Product( i = 2, N Col( tsp), Column( tsp, i )[1] ));
Re: 行全体で値を乗算するための For ループのスクリプト作成New Table() の後に必要なのは次のとおりです。
Product( i = 1, N Col( dt ), Column( dt, i )[1] );
Re: 行全体で値を乗算するための For ループのスクリプト作成先生、本当に素晴らしいですね!完璧に動作しますので、本当にありがとうございます! 私は間違いなく物事を複雑にしすぎていました(笑)。あなたはとても役に立ちます!
Re: 行全体で値を乗算するための For ループのスクリプト作成あなたは頑張りすぎています。以下はあなたが望んでいることだと私が信じているものです
names default to here( 1 );
dt = New Table( "tsp",
Add Rows( 1 ),
New Column( "Row 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.975] )
),
New Column( "Row 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.985] )
),
New Column( "Row 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.983] )
),
New Column( "Row 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [0.839] )
),
);
Ncol = N Col( dt ); // or NCol = N Col( data table("tsp"));
value = 1;
For( i = 1, i <= Ncol, i++,
value = Column( dt, i )[1] * value
);
Show( value );