:cityで、同じ文字列を持つ行でソートされたJSL-Sum:qty<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />皆さんこんにちは、
私はスクリプトを書くのが初めてなので、JSL上で情報チュートリアルを見つけようとしているのに全く迷っています。私は本当に私の問題に少しでも助けをいただければ幸いです。
基本的に、私は並べ替えをする必要があります:都市と各項目の:Qtyの値を合計してからそれを表示します。問題は、:Cityのすべての異なる文字列のリストを動的にまとめてから、:City列に一致する文字列がある行の:Qtyのすべての数値を合計する必要があるということです。
したがって、たとえばテーブルは次のようになります。
tableEx =
| シティ | 数量 |
|---|
| a1 | 100 |
| a2 | 10年 |
| a9 | 29年 |
| a1 | 99年 |
| a4 | 20 |
| a7 | 91 |
| a2 | 60 |
| a100 | 33 |
| a500 | 30 |
| a100 | 14年 |
| a99 | 2000年 |
| 等... | 等... |
この次の部分は私の問題を解決するために読む必要はありません、それは私が私の心の中で問題を解決したい方法を単に詳述します。このようなことができるといいのですが。
List_Of_CityNames = new List();
switch = false。
tableExのForeach行r
{
List_Of_CityNames内のForeach String都市
{
if(r.Get(市)==市)
switch = true; //はこの行のことを意味します:Cityエントリはすでにリストに登録されているので追加する必要はありません。
}
if(switch == false)//この行が:Cityがまだリストに載っていない場合、これが実行されます
{
List_Of_CityNames.Add(r.Get(City)); //都市をリストに追加
}
switch = false。//リストに見つからない都市にリセットする
}
これがうまくいくなら、私はリストをタプルから作り、それを文字列と整数のペアにして、一致する都市の数量を上記のループでも合計できるようにしました。それでは、できればNew Table()を作成して印刷します。
上記の情報を集めた後、私はそれを印刷する必要があるでしょう。だれでも最初の解決策の一部であるかもしれないしそうでないかもしれないリストの動的サイズに基づいてテーブルを作成する方法を知っているでしょうか。
dtSolution = New Table( "Solution"、
行を追加(/ *異なる都市名の数を表す数値* /)、
新しい列( "/ *リストの最初の都市* /"、"連続"、値の設定(リスト(/ *は同じ都市の合計数を表す変数* /)を表します))、
新しい列( "/ *リスト内の2番目の都市* /"、"連続"、値の設定(リスト(/ *同じ都市の合計数を表す変数* /)))、
新しい列( "/ *リストの3番目の都市* /"、"連続"、値の設定(リスト(/ *は同じ都市の合計数を表す変数* /)を表します))、
新しい列( "/ *リストの4番目の都市* /"、"連続"、値の設定(リスト(/ *は同じ都市の合計数を表す変数* /)を表す変数))、
新しい列( "/ *リスト内の5番目の都市* /"、"連続"、値の設定(リスト(/ *同じ都市の合計数を表す変数* /)))、
新しい列( "/ *リスト内の6番目の都市* /"、"連続"、値の設定(リスト(/ *同じ都市の合計数を表す変数* /)))、
//すべての都市がテーブルに追加されるまでなど//新しいテーブルを作成した後は、pt.1で作成されたリストに基づいて、foreachループを使用して各行をテーブルに1行ずつ追加する必要があります。
;
私は私が得ることができるどんな助けでも本当に感謝します。あなたがそのすべてを通して読み終わってしまったのであればまた私はあなたに感謝します。
ありがとうございました、
ロシウス
Re:JSL-Sum:qtyは:cityの中で同じ文字列を持つ行でソートされていますロシウス、
TabulateはJMP 10のTablesメニューに表示されます。JMP 11以降、[Analyze]メニューに移動しました。
- マイケル
Re:JSL-Sum:qtyは:cityの中で同じ文字列を持つ行でソートされています集計ウィンドウの小さな赤い三角形を使用すると、集計をデータテーブルとして保存できます。
Michaelのソリューションを使用して、目的の集計を作成したら、赤い三角形をクリックして[データテーブルにする]を選択します。 これは基本的に私がJSLでしたことを模倣しています。
Re:JSL-Sum:qtyは:cityの中で同じ文字列を持つ行でソートされていますマイケルとPMrozありがとう!
テーブルメニューの下にTabulateが見つかりましたが、ご意見をお寄せいただきありがとうございます。JSLバージョンのテーブルをクリップボードにコピーしてスクリプトに貼り付けることが可能かどうかわかりませんでした。
悲しいことに、それらは直接使えるようにペーストをコピーしていません。それらは動作する前に修正する必要があります。その場合、PMrozのソリューションは、すべてが適切に機能するようにするための構文を示しています。
敬具
ロシウス
Re:JSL-Sum:qtyは:cityの中で同じ文字列を持つ行でソートされていますこれはJSLプログラムとしてです。
//テーブル例を作成する
dt = 新しいテーブル ( "CityQty" 、行を追加 ( 11 ) 、
新しいコラム ( "シティ" 、キャラクター 、公称 、
設定値 ( { "a1" 、 "a2" 、 "a9" 、 "a1" 、 "a4" 、 "a7" 、 "a2" 、 "a100" 、 "a500" 、 "a100" 、 "a99" } ) ) 、
新しいコラム ( 「数量」 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、
設定値 ( [ 100 、 10年 、 29年 、 99年 、 20 、 91 、 60 、 33 、 30 、 14年 、 2000年 ] ) )
) ;
//目に見えない表を作成する
dtab = dt << 集計する (
コントロールパネルを表示 ( 0 ) 、
テーブルを追加 (
列テーブル ( 分析コラム ( : 数量 ) ) 、
行テーブル ( グループ化列 ( : シティ ) )
) 、見えない 、
) ;
//集計を表に変換します
dt_new = dtab << データテーブルにする ;
//集計を削除する
dtab << ウィンドウを閉じる ;
Re:JSL-Sum:qtyは:cityの中で同じ文字列を持つ行でソートされていますデータテーブルにCity列とQty列がある場合は、おそらく(Analyzeメニューの下の)Tabulateを使用できます。
Analyze> Tabulateの順に選択します。
Cityを "行のドロップゾーン"にドラッグします。
"N"と表示されているヘッダーにQtyをドラッグします。
完了をクリックします。
私はこれがあなたにそれらの対応する数量合計と共に都市のソートされたリストを与えるべきであると思います。
後でスクリプトを使ってこれを再現するには、Tabulateの赤い三角メニューを使ってスクリプト>スクリプトをスクリプトウィンドウに保存の順に選択します(または元のデータテーブル自体を含む他のさまざまな場所に保存します)。
それが役立つことを願っています、
マイケル