大家好,
我目前正在嘗試編寫一個腳本,該腳本將自動計算跨溫度的測試產量。 我在整個表格中將所有“通過”替換為 1,將“失敗”替換為 0,然後計算總和。 下面是我當前的製表窗口及其代碼。 我的目標是為每個溫度設置第三列,其產量為 = ((Sum at Temp)/(N at Temp)) x 100。 我在實施時遇到困難。 我認為有一種方法可以在 Tabulate 中執行此操作,或者在每個“N”列之後插入一個收益率列並使用公式中的前兩列計算收益率,但我無法思考如何以一種方式做到這一點考慮了可變數量的列和測試溫度。 任何幫助,將不勝感激! 提前致謝!
list = dt << Get Column Names( string );
Remove From(list, 1, testIndex);
yieldByTest = (dt << Tabulate(
Add Table(
Column Table(
Grouping Columns(:tst_temp),
Statistics(Sum, N, Mean)
),
Row Table(
Analysis Columns(Eval(list))
)
),invisible
)
) << Make Into data Table;
yieldByTest << Set Name("Yield by Test Across Temperature");
使用均值是有道理的。 我不敢相信我沒有想到這一點!
我認為這可以像下面的這個例子一樣完成。

Names Default To Here( 1 );
// generate yield table
dt1 = New Table( "dt1", add rows( 9 ), New Column( "Process", "Character", values( Repeat( {"A", "B", "C"}, 3 ) ) ) );
dt2 = New Table( "dt2", add rows( 9 ), New Column( "Temperature", "Nominal", values( Repeat( {30, 40, 50}, 3 ) ) ) );
dty = dt1 << join( with( dt2 ), Cartesian Join );
For Each( {dt}, {dt1, dt2}, Close( dt, "NoSave" ) );
dty << set name( "yield" );
dty << New Column( "yield", "Numeric", "Continuous", set each value( Random Integer( 0, 1 ) ) );
// tabulate
dty << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Grouping Columns( :Temperature ), Statistics( Sum, N, Mean ), Analysis Columns( :yield ) ),
Row Table( Grouping Columns( :Process ) )
)
);使用匯總而不是製表可能更容易計算產量:

如果你想使用製表,最簡單的方法是使用 % Coluimn 或 % Row,這取決於你的數據是如何格式化的,但你最終可能會得到一個看起來有點奇怪的表格:
