jsl を使用して、列内の最も頻繁に使用される値のテーブル サブセットを作成します。<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは皆さん、
私はまだ基礎の基礎を学んでいる新しいユーザーで、通常は検索すれば必要な答えを見つけることができますが、これは私にはわかりません。
選択した列の最も頻繁に出現する上位 10 個の値のテーブル サブセットを作成するスクリプトを探しています。 現在の回避策は、要約テーブルを作成し、その要約テーブルを値の降順で並べ替え、上位 10 行を選択してから、最初のテーブルに戻って、選択した行のサブセットを作成することです。 エレガントな解決策があることは確かですが、それが見つかりません。 ありがとう!
Re: jsl で列内の最も頻繁に使用される値のテーブル サブセットを作成するこんにちは、MSさん
ご返答ありがとうございます。最初の投稿で、私が興味を持っていたデータは数値ではなく文字であると言及すべきでした。 ただし、将来的に数値データを使用して同じ集計を実行する必要があるため、あなたの返信をブックマークします。
Re: jsl で列内の最も頻繁に使用される値のテーブル サブセットを作成するありがとう、ジム、これは完璧に機能しました。
Re: jsl で列内の最も頻繁に使用される値のテーブル サブセットを作成する別の方法の 1 つは、要約テーブルの代わりに Summarize() を使用し、Rank() 関数を利用して並べ替えのステップをスキップすることです。 残念ながら、Summarize の統計オプションは数値列に限定されています。したがって、以下のサンプル スクリプトは文字列に対しては機能しません。
dt =開ける( 「$SAMPLE_DATA/big class.jmp」 ) ;
n = 3 ; // 最頻値の数
要約する( g =による( :年) 、 c =カウント( :年)) ;
dt <<サブセット(行( dt <<場所を選択してください(含まれています(逆行する( g [ランク( c )])[ 1 :: n 】 、シャア( :年))))) ;
Re: jsl で列内の最も頻繁に使用される値のテーブル サブセットを作成するサンプル データ テーブルが非常に小さいため、上位 5 つの選択のみを使用して動作するサンプル スクリプトを次に示します。しかし、それがどのように機能するかは理解できると思います。
デフォルトの名前はここにあります( 1 );
dt=開ける( 「$SAMPLE_DATA/big class.jmp」 );
dtsumm = dt <<まとめ(
グループ( :高さ )、
周波数( "なし" )、
重さ( "なし" )
);
つむむ<<選別( By( :N Rows )、Order( 降順 )、Replace Table( 1 ) );
つむむ<<場所を選択してください(行()> 5 )
つむむ<<行を削除する;
dtfinal = dt <<参加する(with(dtsumm) ,
列を一致させる( :height = :height )、
複数をドロップ( 0 、 0 )、
不一致を含める( 0 、 0 )、
メインテーブルの順序を保持( 1 )
);