大班最高的女生有66寸,但她是谁?我将以 Big Class 数据为例,但我的数据集大约大一个数量级,而我同事的数据集更大。
有几种方法可以找出 Big Class 数据集中女孩与男孩的最大身高,但如何保留姓名列? 我可以使用 Tabulate 制作表格,但我无法添加名称列,因为它只列出了所有名称。 我可以画一个散点图并选出最高的并写下来,但我们的真实数据集太大了。 我几乎可以使用 SQLQuery 生成器来获取它,只要它允许我取消选中“Group By/Name”,但我从 Tabulate 中得到的正是我得到的。
任何方法(除了图表!)都会有所帮助!
提前致谢。
数据表Re: Big Class最高的女生是66寸,但她是谁?如果您正在寻找每组最大值的所有列(以获取所有可用信息),您可以在新表中获取它:
Names Default To Here( 1 );
dt = Open( "$sample_data\big class.jmp" );
dt << select where ( :height == Col Max( :height, :sex))
dt1 = dt << Subset( Selected Rows( 1 ), Selected columns only( 0 ) );
dt << clear select();
Re: Big Class最高的女生是66寸,但她是谁?确实已经过去了很多年,但我想出了一种无需代码、使用 Big Class 或我的实际数据集即可完成的方法。 我使用“用 X 拟合 Y”将身高放在 Y 中,将性别放在 X 中,然后在上面放一个正态分位数图。 在分位数图中单击并拖动以选择最高分位数的数据点,而不考虑 X。 (这对于只有两个性别来说是微不足道的,但我正在处理的实际数据有大约 7 个离散的 X 值和截然不同的 Y 值。)然后我回到数据表,只选择了最高的,在行框中,对单击已选择并选择“数据视图”。 它弹出一个数据表,其中仅包含每个 X 的最高分位数值,并保留所有列。 不是最优雅的解决方案,但我明白了!

Re: Big Class最高的女生是66寸,但她是谁?这是处理男性和女性的代码的扩展
Names Default To Here( 1 );
dt = Open( "$sample_data\big class.jmp" );
Show(
:name[((dt << get rows where( :sex == "F" & :height == Col Max( If( :sex == "F", :height, . ) ) ))[1])],
:name[((dt << get rows where( :sex == "M" & :height == Col Max( If( :sex == "M", :height, . ) ) ))[1])]
);
Show() 函数将结果写入日志
:name[(dt << get rows where(:sex == "F" & :height == Col Max(If(:sex == "F", :height, .))))[1]] = "JACLYN";
:name[(dt << get rows where(:sex == "M" & :height == Col Max(If(:sex == "M", :height, .))))[1]] = "LAWRENCE";
该公式返回男性或女性最大身高所在的行,因此该行的所有列值都可查询。此查询几乎可以显示您需要的显示或操作。我选择只将它写入日志,以说明查询结果是正确的答案。
Re: Big Class最高的女生是66寸,但她是谁?感谢您的快速回复!
两件事情:
首先,这一切对我来说就是打开文件。 
其次,如果我想同时知道最高的男孩怎么办? 我们有几个“班级”,我们需要知道每个班级中“最高的女孩和男孩”。Re: Big Class最高的女生是66寸,但她是谁?Names Default To Here( 1 );
dt = Open( "$sample_data\big class.jmp" );
Show( :name[((dt << get rows where( :sex == "F" & :height == Col Max( If( :sex == "F", :height, . ) ) ))[1])] );