
在此示例中,我想根據每個組的平均值計算第 2 列的平均值。 第 3 組有兩個值,第 3 組的平均值為 (3+9)/2= 6。 所以我需要按組獲取第 2 列平均值:(3+3+(3+9)/2) /3 = 4。
當我使用表格時或 Column Mean (:Column2 ) 來獲取統計數據,使用每個單獨的 column2 值分別地用於計算平均值 (3+3+3+9)/4 = 4.5。

如何得到正確的“按組”呢?
謝謝
感謝大家的幫助!!!
該示例是我們嘗試處理具有數千個數據點和數百個組的大型數據集的簡化版本。 我希望有一個解決方案,無需創建額外的數據表,以便我們可以將所有內容保留在同一個數據表中,這看起來不是一個選項。
因此,您想要“組”的“第 2 列”的平均值 --> 使用表格 --> 摘要:

然後在打開的新表中取一列的含義:

結果:

為了得到你想要的,我會計算 Tabulate 之外的值,然後只使用 Tabulate 進行格式化。

Names Default To Here( 1 );
dt = New Table( "Sample",
Add Rows( 4 ),
New Column( "Group", Numeric, "Ordinal", Format( "Best", 12 ), Set Values( [1, 2, 3, 3] ) ),
New Column( "Subgroup", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 1, 1, 2] ) ),
New Column( "Column 2", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [3, 3, 3, 9] ) )
);
dtSum1 =dt << Summary(
Group( :Group ),
Mean( :Column 2 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtSum2 = dtSum1 << Summary(
Mean( :Column 2 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtSum2:Column 2 << set name( "Column 2_1" );
dtSum1 << Concatenate( dtSum2, Append to First Table(0));
dtSum1 << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table(
Grouping Columns( :Group ),
Statistics( Mean ),
Analysis Columns( :Column 2 )
),
Column Table( Analysis Columns( :Column 2_1 ), Statistics( Mean ) )
)
);
你好@GroupSquareWolf ,
如果我正確理解您的主題,那麼解決方案如下:
- 右鍵單擊列“組”,選擇“新公式列”,然後選擇“分組依據”。
- 然後右鍵單擊“第 2 列”,選擇“新公式列”、“聚合”、“平均值”。
JMP 應該為您提供由您指定為“GroupBy”的變量計算得出的平均值。
通過執行這兩個步驟,該列中的公式將與建議的第二個腳本選項相同@保羅丁。
希望這對您有幫助,
我真的不明白這意味著你正在嘗試計算? 您想按組計算第 2 列的平均值嗎? 我不明白小組需要如何參與其中。 嘗試一些事情來看看它是否滿足您的需要:
1. 創建一個新列並添加以下公式:
Col Mean( :Column 2, :Group, :Subgroup )
2.如果您想要相同的想法但不需要子組成為以下內容的一部分:
Col Mean( :Column 2, :Group)
(由於您選擇示例表的方式不幸,導致了相同的結果)
為了匹配您的示例計算(3+3+6) /3 = 4 您只需執行“子組”列,但這與您談論“組”時的用詞不符:
Col Mean( :Column 2, :Subgroup )
我希望您正在尋找的東西就在這裡!