回复:平均列的 JMP 脚本你好@hsjoyner ,
您是否调查过 column() 函数? 您可以使用它的索引,而不是使用列名。这在 for() 循环中可能很有用。

回复:平均列的 JMP 脚本如果列数是固定的,你可以硬编码方法,
如果“等”是可变的,你可能需要一些插入和评估(替代()):
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
offset = 5;
nc = N Col( dt );
length = 10;
groups = Floor((nc - offset) / length);
For( group = 1, group <= groups, group++,
myFormula = Expr( Mean() );
For( i = 1, i <= length, i++,
Insert Into( myFormula, NameExpr(As Column( offset + (group-1)*length +i ) ))
);
myName = "average" || Char( group );
Eval(Substitute(Expr(new Column(__myName__,Formula(__myFormula__))),Expr(__myFormula__),NameExpr(myFormula),Expr(__myName__),NameExpr(myName) ));
);
回复:平均列的 JMP 脚本这是一个脚本,我希望它能创建您正在寻找的内容。它创建新列,对不确定数量的列平均 10 列组。

names default to here(1);
// Create an example data table to use for illustration of how to
// create the sets of average columns
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Delete the first 3 columns to match the description
// of the suggested data table structure
dt << delete columns({"lot_id","wafer","wafer ID in lot ID"});
// Create new columns that have the groups of 10 columns
startingNCol = N Cols(dt);
start = 2;
groupSize = 10;
while(start+groupSize<=startingNCol,
eval(substitute(expr(
dt << New Column("Average " || char( start ) || "-" || char(start + groupSize),
set each value(Mean(current data table()[row(),index(theStart,theEnd)])));
),
expr(theStart), start, expr(theEnd), start+groupSize
));
start=start+groupSize;
);
回复:平均列的 JMP 脚本Mean(current data table()[row(),index(theStart,theEnd)])
哇,非常优雅 - 比用列引用手动填充平均值要好得多!
平均列的 JMP 脚本我有一个非常新手的 JMP 脚本编写器,试图编写一个命令来将一组列平均到一个新列中。 这相当于突出显示这些列,然后选择“新建公式列”>“组合”>“平均”。 但是,我在脚本库或网上找不到任何可以让我这样做的东西。 有人有什么建议吗?
为了增加额外的复杂性,我希望脚本采用 2-11、12-21、22-31 等列,并对每个列组进行平均。 列没有设置名称,所以我不能只将列名放入脚本中(不可能使名称一致,因为列名是样本名称,我需要保持这种方式)。 每个 JMP 文件中的列组数量不一致,因为每个 JMP 文件中的样本数量可能相差很大。 有没有简单的方法可以做到这一点?
如果有帮助,我会在 Mac 上使用 JMP 17.0.0。 任何帮助表示赞赏!
数据混合和清理苹果系统回复:平均列的 JMP 脚本为什么公式列无法产生与平均值 2 - 12 列相同的值?
平均值(:NPN1、:PNP1、:PNP2、:NPN2、:PNP3、:IVP1、:PNP4、:NPN3、:IVP2、:NPN4、:SIT1)
编辑:我在写评论时分心了,上面的公式产生了一个匹配的值。
后续:Mean() 似乎对列格式属性非常敏感,因为当列设置为“固定十进制宽度 15 十进制 3”与“最佳宽度 12”时,我在自己的数据表中得到了不同的结果。有什么建议可以避免这个问题吗?
回复:平均列的 JMP 脚本你好@hsjoyner ,
如果我理解正确的话,只要你想计算所有列组的平均值,你应该能够获取表中列组的列表,然后循环遍历这些组名,从而创建公式列,并动态地提取每个组中的列。像这样:
dt = Current Data Table();
groupNames = dt << get column groups names;
For Each( {groupName, index}, groupNames,
Eval(
Eval Expr(
dt << New Column( groupName || " Mean",
Formula( Mean( Current Data Table() << get column group( Expr( groupName ) ) ) )
)
)
)
);
我希望这有帮助!
@朱利安
编辑:重读了你的消息和回复后,我意识到你指的是列的组(也就是列的集合),而不是表格中实际分组的列。所以,这个答案对你来说可能没什么帮助,但我还是把它留在这里,以防有人遇到这种情况!:grinning_face: