取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use JMP Live to centralize and share reports within groups. Webinar with Q&A April 4, 2pm ET.
选择语言 隐藏翻译栏
查看原发布的话题

使用制表法计算收益率

MichaelO
Level II

大家好,

 

我目前正在尝试编写一个脚本,该脚本将自动计算跨温度的测试产量。 我在整个表格中将所有“通过”替换为 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");

undefined

 

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

1 个已接受解答

已接受的解答
Georg
Level VII

回复:使用制表法计算收益率

我认为这可以像下面的这个例子一样完成。

 

undefined

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 ) )
 )
);
3 条回复3
jthi
Super User

回复:使用制表法计算收益率

使用汇总而不是制表可能更容易计算产量:

undefined

如果你想使用制表,最简单的方法是使用 % Coluimn 或 % Row,这取决于你的数据是如何格式化的,但你最终可能会得到一个看起来有点奇怪的表格:

undefined

 

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

Georg
Level VII

回复:使用制表法计算收益率

我认为这可以像下面的这个例子一样完成。

 

undefined

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 ) )
 )
);

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。

MichaelO
Level II

回复:使用制表法计算收益率

使用均值是有道理的。 我不敢相信我没有想到这一点!

这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。