你好,
我是 JMP 的新手,正在努力计算 72 小时压力测试后 5 种不同设备的电流变化百分比,如下表所示。电流变化百分比的计算公式为 =(给定应力持续时间的电流 - 0 小时的电流)/0 小时的电流*100

此操作在 Excel 中非常简单,但不确定如何将公式应用于选定的行?任何帮助将不胜感激!我使用的是JMP15.0版本。
以下是做你想做的3种方法。

Names Default To Here( 1 );
dt = Data Table( "Bluegalaxy" );
// Method 1
dt << New Column( "% Change 1",
Format( "Percent", 9, 2 ),
set each value(
currDevice = :Device Number;
zeroCurrent = :Current[((dt << get rows where(
:Device Number == currDevice & :Stress Duration == 0
))[1])];
value = (:Current - zeroCurrent) / zeroCurrent;
)
);
// Method 2
// Sort the table in assending Device Number/Stress Duration
dt << sort(
By( :Device Number, Stress Duration ),
order( Ascending, Assending ),
Replace Table( 0 )
);
dt << New Column( "% Change 2",
Format( "Percent", 9, 2 ),
set each value(
If( :Stress Duration == 0,
zeroCurrent = :Current
);
(:Current - zeroCurrent) / zeroCurrent;
)
);
// Sort the table back to the original order
dt << sort(
By( :Stress Duration, Device Number ),
order( Ascending, Assending ),
Replace Table( 0 )
);
// Method 3
// Create a data table with only the 0 Stress Duration values
dt << Select Where( :Stress Duration == 0 );
dtZero = dt << subset( selected rows( 1 ), columns( :device Number, :current ) );
dtZero:current << set name( "zeroCurrent" );
dt << Update( With( dtZero ), Match Columns( :Device Number = :Device Number ) );
dt << New Column( "% Change 3",
Format( "Percent", 9, 2 ),
set each value( (:Current - :zeroCurrent) / :zeroCurrent )
);
// Clean up
dt << delete columns( zeroCurrent );
Close( dtZero, nosave );
dt << clear select;
所有这些方法都可以在交互模式下创建。
注意:我在新列的规范中使用“设置每个值”。这可以换成“公式”。公式规范允许任何新记录在添加或更改时应用公式。在您介绍的情况下,我假设您只希望在创建新列时创建一次值。
非常感谢吉姆,他展示了解决这个问题的多种方法! 非常感谢您的帮助!