データの選択とサブセット化このデモンストレーションでは、特定の行を選択し、[テーブル] メニューにあるサブセット コマンドを対話的に使用して、データ テーブルのサブセットを抽出する方法を見ていきます。 セクションのコース ジャーナルで、[Ski Lodge Temperature Data] をクリックします。 これは幅の広いデータ テーブルですが、かなり短いものです。 ここでのシナリオは、気象観測所のあるスキー リゾートがあり、1 時間ごとに温度を記録してファイルに保存するというものです。 そのため、ファイルのすべての観測には、日付に加えて 1 時間ごとの温度測定値が含まれます。 それは午前の統計であり、午前の気温も同様です。ここで、気温が摂氏マイナス度を下回ったときに、雪製造機をオンにする予定があるとします。その温度では寒すぎて雪が降らない可能性があるからです。 そのため、履歴データの記録を調べて、その製雪機を使用したであろう日付を記録で見つけたいと思います。 おそらく、別のマシンを追加するか、既存のマシンを置き換えることを正当化しようとしているのでしょう。 ここでいくつかのことを説明します。 1つは、この温度が摂氏ではなく華氏で記録されたことです。 2 つ目は、データの小さなサブセットのみを使用していることです。 これらは日ごとの順序ですが、これは大規模なデータ セットで作業する場合のベスト プラクティスの 1 つを表しています。より小さなサブセットに対するスクリプト。 繰り返しますが、うまくいけば、データで見つかると予想される問題を表しています。 そして、完全なデータセットに対してテストできます。 したがって、この例では、1 週間のデータを取得しただけであることが代表的なものであることを願っています。 もう 1 つのことは、華氏の温度が記録されていることですが、カットオフは摂氏マイナス度です。 したがって、摂氏マイナス度を華氏に変換することはできますが、代わりに、ベクトル化された演算を使用するというこの概念を繰り返し、すべての華氏温度を行列として抽出し、それらを摂氏温度に変換します。 ジャーナルには、Isolate Snow-Making Days Script という事前作成済みのスクリプトがあります。 そして、一度に 1 つずつ実行します。 このデモンストレーションでは、実際には、ログ ウィンドウを行ったり来たりするのではなく、組み込みのログ オプションを使用します。 そこで、スクリプト エディタ ウィンドウを右クリックして、[埋め込みログを表示] を選択します。 ウィンドウのエディタ部分にスクリプト全体が表示されるように、サイズを変更します。 行を選択して実行します。 これにより、現在のデータ テーブルであるスキー ロッジの温度データ テーブルの参照が取得され、それが dt に格納されます。 次に、get as matrix というメッセージを送信し、それを変数 tempF に格納します。 そこで、行を実行します。ログに行列を表示するのではなく、多くの場合、より大きな行列を使用して、行列の次元とそれが割り当てられていることを示すだけです。 ここで、7 行と 7 列になっていることに注意してください。 データ テーブルに戻ると、このデータ テーブルには列があります。 では、なぜ列だけを引き出したのでしょうか。 日付の列を見ると、それが名目上のものであることがわかります。 したがって、これは数値ではなく文字データとして扱われている可能性があります。 もちろん、列情報に移動することもできますが、さらに確認するには、列を少し広げて、値が左揃えになっていることに注意してください。これは、JMP が文字データを処理する方法です。 したがって、get as matrix をデータ テーブルに送信すると、この文字列は無視され、数値列のみが抽出されました。 行は、変数 tempF の各要素、そこに格納されている行列を取得し、それを摂氏に変換して tempC に格納します。 また、ログに同じメッセージが表示されますが、もちろん tempf または tempc にカーソルを合わせると、それらの値を確認できます。 次に、tempC で行をカウントしたいと思います。これは、ループの外側で行または列をカウントするベスト プラクティスとして言及しています。 そこで、行列 tempC の行を数え、それを変数 nr に格納します。 行を実行すると、もちろん 7 つあります。 もう 1 つやりたいことは、2 つの行列を作成することです。 任意の日の最低気温を示す 1 つは minTemp で、もう 1 つは製雪機をオンにする必要があったかどうかを示すもので、Machine と呼ばれます。 どちらも、いくつかの行、1 つの列、欠損値から始まります。 そのため、代入関数をカスケードしています。 その J 関数を使用して、いくつかの行を持つマトリックスを作成します。これは、tempC からの行数、前述の単一の列、および欠損値です。 Machine、minTemp、およびその他の変数が同じ値で始まる場合は、列に表示されているように、このカスケード方式で単純に割り当てることができます。 Machine または minTemp には、欠損値の列が表示されます。 次に、ループしたいのですが、nr に格納されている数値以下の r をテストするカウンターから始めます。次に、for ループの本体は、これを受け取る obs という変数を持ちます。 tempC の最初の行とすべての列。 その行の最小値を見つけて、それを minTemp の r 番目または最初の場所に入れます。 次に、その位置にある minTemp に入力した値をマイナスと比較します。この比較が真の場合、値がマイナスより小さい場合は、結果としてブール値を取得し、それを Machine の最初の位置に配置します。 false の場合、マイナス以上の場合は Machine に入れます。 次に更新し、再度テストすると、データ テーブルの次の行で obs が上書きされます。 minTemp と Machine の両方を設定するまで、同じ手順を実行します。 行を実行すると、minTemp にカーソルを合わせることができます。 また、ホバー ヘルプに表示されます。下に表示されているスクリプト入力ウィンドウの下部にも表示されます。 Machine にカーソルを合わせると、これらのメッセージが表示されます。最後の 2 つの手順で、これらのメッセージをカスケードすることもできますが、デモンストレーションのために、それらを分離します。 そこで、dt に新しいコラム メッセージを送信します。 これは minTemp と呼ばれ、値は for ループから取得したばかりのものになります。 それでは行を実行していきます そして、その新しい列が作成されたことを背景で見ることができます。 たとえば、フォーマット引数を新しい列に追加して、小数点以下の桁数を固定することもできます。 これにより、その列を再度操作する予定がある場合に変数に格納できた列オブジェクト参照も返されました。 次に、コードの次の部分は、新しい列にメッセージを dt に設定します。 これはMake Snowと呼ばれています。 値はマシンの列ベクトルから取得されます。これには と があります。ここで、スクリプトは値ラベルを使用するように要求します。データ値に がある場合、ラベルは no になり、データ値に がある場合は、ラベルははいになります。 そしてもちろん、ブール値を使用して、値ラベルを使用するオプションをオンにします。 繰り返しますが、列オブジェクトのインスタンスを作成しています。 そして、テーブルに戻ってスクロールしたいと思います。 したがって、現在、列に表示されているのは「いいえ」と「はい」です。 列パネルを下にスクロールすると、Make Snow が連続していることがわかります。これは、実際のデータ値の数値データであることを意味します。 そして、私がそれらを使用しているときに値ラベルを持つ別のもの-そして、列パネルのそのアスタリスクもプロパティがあることを示しています.それをクリックすると、これが表示されます.値ラベルを使用しているとき、データ テーブルのセルにカーソルを合わせると、実際のデータ値が表示されます。 しかし、今すぐグラフを作成したり、何らかの分析を行ったりすると、これらのラベルがオンになっている限り、これらのラベルが使用されます。 そしてスクリプトに戻り、これらのメッセージをデータ テーブルにカスケードすることもできますが、デモンストレーションのために、これらの手順で行います。 select where をデータ テーブルに送信し、Make Snow 列の値が等しい行を探しています。So I'll run line 行を実行すると、背景に 4 つの行が選択されていることがわかります。 最後に、subsect コマンドをデータ テーブルに送信します。 出力テーブル名を指定し、列を指定します。 4 つの行が選択されているので、どの行が必要かを言う必要はありません。 これらは自動的にサブセット テーブルに取り込まれます。 それでは、行を実行します これで、そのサブセット テーブルができました。 ここでも、最低気温データのフォーマットを選択できます。 ソース スクリプトはサブセットを反映します。 ソースを右クリックし、[編集] を選択して、実際に簡単に見てみましょう。 テーブル メニューのコマンドを使用して新しいスクリプトを作成するときはいつでも、それをインタラクティブに行うか、スクリプトを使用して行うかに関係なく、ソース スクリプトを取得します。 したがって、subset が使用された table コマンドであることがわかります。 サブセットの注意点は、これらの行が引き出された理由がわからないため、これらの行をハードコーディングすることです。 JMP が作成するスクリプトには、その選択の根拠はありません。 また、JMP は、選択された行の引数として a を指定することで、選択された行のみをプルするというデフォルトの傾向を無効にします。 したがって、スクリプトをキャプチャして、作成中の別のスクリプトに適応させたい場合は、ここで示した 2 つの行を削除し、サブセット メッセージを送信する前に、スクリプトの論理的な選択に必要なものをすべて作成します。 . だから私はそのスクリプトをキャンセルします。 したがって、これはテーブルのメニューからコマンドを使用する 1 つの例ですが、データを行列として操作することもできます。