大班最高的女生有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])] );