回复:平均列的 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: