行全体で値を乗算するためのスクリプト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ループあなたは一生懸命働いています。以下はあなたが望むと私が信じているものです
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 );Re:行全体で値を乗算するためのスクリプトForループあなたは、絶対に素晴らしいです!本当にありがとうございます! 私は間違いなく物事を複雑にしすぎていました。あなたはとても役に立ちます!
Re:行全体で値を乗算するためのスクリプトForループNew Table()の後に必要なのは次のとおりです。
Product( i = 1, N Col( dt ), Column( dt, i )[1] );
Re:行全体で値を乗算するためのスクリプトForループこの式で反復する複数の行がある状況で、これをFor Each Rowに入れようとしましたが、機能していないようで、エラーが何であるかわかりません。正しい値を取得します。最初の行「A」(86.9%)の「RTP」で、残りのすべての行は、すべて異なるはずのときに同じ値(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] ));