
在此示例中,我想根据每个组的平均值计算第 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 )
我希望您正在寻找的东西就在这里!