jsl 建立列中最常見值的表子集<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我是一名新用戶,仍在學習基本原理,通常我可以透過搜尋找到我需要的答案,但這個答案卻讓我困惑。
我正在尋找一個腳本來建立所選列的前 10 個最常出現的值的表子集。 我目前的解決方法是建立一個總計表,按降序值對總計表進行排序,選擇前十行,然後返回到第一個表並建立所選行的子集。 我確信有一個優雅的解決方案,但我就是找不到它。 謝謝!
回覆:jsl 建立列中最常見值的表子集嗨女士,
感謝您的回复,我應該在我原來的帖子中提到我感興趣的數據是字符而不是數字。 但我正在為您的回應添加書籤,因為將來我需要使用數字資料執行相同的摘要。
回覆:jsl 建立列中最常見值的表子集謝謝吉姆,這很完美。
回覆:jsl 建立列中最常見值的表子集一種替代方法是使用 Summarize() 而不是匯總表,然後使用 Rank() 函數跳過排序步驟。 不幸的是,Summarize 中的統計選項僅限於數字列;因此,下面的範例腳本不適用於字元列。
dt =打開( “$SAMPLE_DATA/big class.jmp” ) ;
n = 3 ; // Nr 個最常出現的值
總結( G =經過( :年齡) , C =數數( :年齡)) ;
dt <<子集(列( dt <<選擇地點(包含(反向( G [秩( C )])[ 1 :: n ] ,查爾( :年齡)))))) ;
回覆:jsl 建立列中最常見值的表子集由於範例資料表很小,因此以下範例腳本僅使用前 5 個選擇。但我想你可以看到它是如何運作的。
名稱預設為此處( 1 );
dt=打開( “$SAMPLE_DATA/big class.jmp” );
dtsumm = dt <<概括(
組(:身高),
頻率( “沒有任何” ),
重量( “沒有任何” )
);
dtsumm <<種類( 按( :N 行 ), 順序( 降序 ), 替換錶( 1 ) );
dtsumm <<選擇地點(排()> 5 )
dtsumm <<刪除行;
dt最終 = dt <<加入(與(dtsumm),
透過匹配列( :height = :height ),
刪除倍數( 0 , 0 ),
包括不匹配項( 0 , 0 ),
保留主表順序( 1 )
);