スピーカー
|
トランスクリプト
|
| ジョーダン・ヒラー |
みなさん、こんにちは。 私はジョーダン・ヒラーです。この話は「このコードを盗む」です。 拡張ログから取得したスクリプトの3つのアップグレード。 |
| |
そして、これがこの講演のインスピレーションです。 これは、挑発者で活動家のアビー・ホフマンによる本です。 ええ、彼は彼の本を「この本を盗む」と名付けました。これは素晴らしいタイトルです。 あなたの本にその名前を付けるのが素晴らしいビジネスプランかどうかはわかりませんが、とにかくそれは非常にキャッチーです。 |
| |
では、なぜこのコードを盗むのでしょうか? JMPはあなたにコードを盗んでほしいと思っています。 アイデアは、ポイントアンドクリックしてJMPで分析を行うことです。 |
| |
ポイントアンドクリックの背後にあるそのコードが保存されます。 拡張ログに保存され、取得して再利用できます。 |
| |
そして、それはあなたのプロダクションスクリプトの約90%です。 あなたはそれをつかんで再利用するつもりです |
| |
一般的なタスクを自動化し、ポイントアンドクリックのシーケンスではなく、1つのボタンをクリックするだけでそれを実行します。 それがここでの全体の目標です、あなたは節約するつもりです |
| |
拡張ログからのスクリプトであり、それが本番スクリプトの骨である骨です。 |
| |
自分で書く必要があるのは約10%残っており、それがこの講演の目標です。 プロダクションスクリプトをまとめる結合組織のいくつかについて説明します。 |
| |
したがって、この講演では、構文の核心に焦点を当てるのではなく、あなたに焦点を当てます。 |
| |
全体像についてはもっと詳しく説明します。これは、JSLプログラミングを学ぶための良い方法だと私が思うことと一致しています。 既存のコードを取り上げて、例を挙げて学ぶ方がはるかに優れています。 そのコードを使用してください。 |
| |
やりたいことを実行するスニペットを見つけます。 JMPユーザーコミュニティまたはスクリプトガイドで見つけることができます。 |
| |
そして、それをコピーして、あなたの使用に合わせて調整してください。 構文の複雑さをすべて知っている必要はありません。 あなたはそのように本当に遠くに行くでしょう。 構文を学ぶことはあなたが経験を積むにつれてやって来ます。 |
| |
そこで、拡張ログからコードを拡張するためにできることについて3つのケーススタディについて説明しますが、最初にJSLのレビューを行います。 多分それはあなたの何人かのためのいくつかのJSLの基本への入門書です。 |
| |
したがって、始めたばかりの場合にJSLについて知っておくべき重要なことは、すべてがオブジェクトであるということです。 あなたがするすべて |
| |
オブジェクトであるために何かをしたいので、データテーブルとデータテーブルの列、および分散プラットフォーム、グラフビルダー、Fit Y by X、 |
| |
そしてそれらのプラットフォームから来るレポート。 したがって、オブジェクトがある場合、それらを操作する方法は、メッセージを送信することです。 したがって、オブジェクトはメッセージを受信します。 これは、拡張ログからコピーした非常に単純な例です。 |
| |
サンプルデータディレクトリのビッグクラスデータテーブルを開き、簡単な分布分析を実行します。 そして、これはそのコードがどのように見えるかであり、ログからコピーされただけです。 |
| |
今。 |
| |
私たちがやりたいことは、最初にやりたいことはデータテーブルに名前を付けることです。 名前を付けてください。そのために、ここの5行目からコードを取得して拡張しました。 私 |
| |
このbctable =を残りの部分の前、ステートメントのオープン部分の前に追加しました。 そして、それが行うことは、そのデータテーブルを開くときに、この名前bctableを作成することです。 ご存知のとおり、私はbctableを選択しました。ドキュメントに、dtが表示されます。 あなたが望むものを使用してください、これはあなたによって割り当てられます。 |
| |
それでは、これを強調表示して実行ボタンをクリックし、Big Classを開き、同時にbctableという名前を割り当てて実行しましょう。 今それをすることの美徳、なぜそれが重要なのか、それは今私がこれを持っているからです |
| |
取り持つ。これは、後でコードで使用できるbctableのフックです。 私がbctableと言うときはいつでも、私はビッグクラスについて話している。 |
| |
そう |
| |
これが次の行ですが、配布コマンドと私もそれを変更しました。 そして、あなたが知っている、ここの前に、それは裸の配布コマンドであるログから。 ありません... |
| |
データテーブルを指しているのではありません。 この方法で実行すると、JMPはフォーカスのあるデータテーブルで実行するだけです。 |
| |
現在のデータテーブルは、その直前に開いたので、たまたま大きなクラスです。 しかし、明示することは常に良いことです。 操作するデータテーブルを明示的に指定することをお勧めします。そのため、この方法で実行します。 |
| |
bctable、次に二重矢印、次に配布コマンド。 これが追加したもので、二重矢印の付いたbctableです。 |
| |
そして、これはメッセージを送信するための構文です。 そのため、右側の配布メッセージを、左側のbctableの名前が付けられたデータテーブルに送信します。 そして、私がbctableにカーソルを合わせると、それがビッグクラスであることがわかります。 だから全部を実行して、 |
| |
配布レポートを取得します |
| |
私たちが欲しかったこと。 |
| |
これが...これをさらに一歩進めることができ、多くの場合、これを行う必要があります。 プラットフォームの実行時にプラットフォームの名前を作成するので、 |
| |
これは、二重矢印と等号の両方を組み込んだ線です。 それでは、ええと...これを右から左に読んでみましょう。 その配布メッセージを受け取り、それをbctableに送信します。 |
| |
そして、プラットフォームであるこれらすべての結果として、distplatと呼んでいるこの変数に保存します。 |
| |
それを実行しましょう。 |
| |
わかりました、同じように見えますが、違いは、後でコードで使用できるこのJSL変数distplatがあることです。 |
| |
何に使うの? これを使用して、出力に赤い三角形のオプションを追加することができるので、ここでそれを持ってきましょう... |
| |
あなたがそれを見ることができるところにその配布レポートを持ってきましょう。 |
| |
そして、そのdistplatオブジェクトを取り上げます。それが...それが配布プラットフォームです。 |
| |
ほら、その上にカーソルを置いて、この行を実行してみましょう。 配布プラットフォームで通常の五分位プロットをオンにします。 そこにそれがある。 |
| |
わかった。 |
| |
最後のステップは、プラットフォームを取得し、このオブジェクトをここに取得し、 |
| |
レポートオブジェクトであるレポートを取得します。 それがこの行です。 プラットフォームオブジェクトにレポートメッセージを送信すると、レポートオブジェクトが取得されます。 |
| |
また、コード内のこれらの値(レポート内の数値、グラフ、またはグラフィック要素)にアクセスする場合は、これを行う必要があります。これが必要になります。 このオブジェクトはrdistplatです。 もう一度実行するだけです、rdistplat。 |
| |
私はそれを実行しました、そしてあなたは目に見えるものを何も見ません、しかし何が起こったのかは今私がこのオブジェクト、rdistplatを持っているということです。 陳列ボックスだと書いてありますが、後でそれを使ってレポートの番号にアクセスする方法について説明します。 |
| |
ログをクリアします |
| |
そして私たちから始めます |
| |
ケーススタディ。 |
| |
したがって、ここで学習する最初の手法は、データテーブルの異なる列で同じコマンドを何度も繰り返し、foreachコマンドを使用してループのある列を反復処理することです。 そう |
| |
これは非常に一般的なニーズです。列の形式やモデリングタイプを変更するなど、単純なことを行う必要がある場合もあります。 |
| |
それは次のように非常に複雑になる可能性があります |
| |
列の変換を行い、管理図を実行し、その管理図を使用して何かを実行します。 そうそう、それはスケーリングします。この手法は拡張性があります。 |
| |
これをJSLコードで実現する方法は次のとおりです。 最初にポイントしてクリックします。右、やりたいことを実行します。 単一の列に対してそれを実行してから、拡張ログを使用してそのコードを取得します。 |
| |
これがスクリプトの骨組みです。 そして、そのアクションを実行するすべての列をループするように変更します。 |
| |
ループ、反復に使用する方法はそれぞれに対してであり、これはJMP 16で導入されたため、この手法は以前のバージョンのJMPでは機能しません。 |
| |
これもJSLリストと呼ばれる概念を使用しているので、それについても少し説明します。 |
| |
さて、始めます |
| |
JMPでは、ホームウィンドウから始めましょう。 |
| |
そして、私は...ログをチェックして、それがきれいであることを確認しましょう。 いいえ、ログをクリアして、1つ削除する必要があります。 では、やりたいことをポイントしてクリックしましょう。 sc20というデータテーブルを開きます。 |
| |
このデータテーブルは、オンラインで見つけるプレゼンテーション資料で利用できます。 |
| |
このデータテーブルを見ると、ID列があり、約20個あります。 |
| |
データの列。 これらは小数点以下の桁数が多く、精度が高すぎるため、小数点以下2桁で切り捨てたいと思います。 それでは、フォーマットを変更して、データの小数点以下2桁のみを表示するようにします。 |
| |
これは簡単なポイントアンドクリック操作です。 右クリックして、列情報に移動し、 |
| |
表示形式をデフォルトの最適なものから変更して、小数点以下2桁を修正します。 |
| |
OK、そして今、NPN1に対してそれを行いました。また、それを実行したい他の19の列があります。 |
| |
それでは、拡張ログを調べてみましょう。 |
| |
これがそれです。これは、1つの列NPN1の形式を変更することを実現するために必要なコードです。 次に、これを再利用するには、赤い三角形に移動します。スクリプトをクリップボードに保存することも、新しいスクリプトウィンドウに保存することもできます。 |
| |
別のファイルに切り替えます。ここでいくつかの作業を行ったので、これについてもう少し詳しく説明します。 |
| |
わかった。 |
| |
したがって、ここの最初の2行... 3行、これはログからのコードです。 さて、最初に行うことは、データテーブルを開くことです。 |
| |
そして、あなたは私が少し編集したことに気づいたかもしれません、私は私の長いパス名、このファイルへの私の長いディレクトリパスを編集しました。 |
| |
このように実行すると、 |
| |
JMPデータテーブルsc20がこのJSLファイルと同じディレクトリにある限り機能します。 つまり、これは、現在いる同じディレクトリへのローカルファイルパスのようなものです。 |
| |
とにかく、ログからデータテーブルを開いているところです。次に、この形式の変更を適用して、10進数の10文字を10進数の2桁に固定します。 |
| |
表...左側のここにある列参照は、列をアドレス指定する1つの方法です。 いくつかの異なる方法がありますが、これはコロンで見られる非常に一般的な方法です。 コロンの左側にあるテーブルref ... ref ...参照と、コロンの右側にある列名。 |
| |
したがって、これもログから直接取得されます。 |
| |
JMPは、ログでこの方法を使用してデータテーブルをアドレス指定しています。 私たちが話したことを実行する方が良いと思います。開いたときにJSL名を付けて、それからそのJSL名を使用する方が良いと思います。 したがって、コロンの前のこのビジネスの代わりに、私はそれをdtに変更しました。 |
| |
これが同じコードですが、少し修正しただけです。実行すると、正しい効果が得られます。 データテーブルを開き、 |
| |
形式を小数点以下2桁に変更します。 さてそうそう、それができたので、それはかなり簡単なことです |
| |
右、他の19列すべてを変更します。 そこに... NPN1があります。それから、その行をコピーして全員を変更し、さらに19回書き込むことができます。 |
| |
ええ、もちろんそれは非効率的です。プログラミングの素晴らしいところの1つは、あなたです...同じことを2回以上行う必要がないということです。 ですから、これを19回、20回書くのではなく、1回だけ書くと、保守が容易になります。 |
| |
これが私たちのやり方です。 最初に行うことは、操作するすべての列のリストを取得することです。 |
| |
そして、私がリストと言うとき、私は単なる一般的な種類のリストを意味するのではありません。 私はJSLリストについて話している、私はあなたがJSLでプログラミングしているときにあなたが使う特定のデータ構造について話している。 |
| |
リストは、コンテナに含まれるいくつかのオブジェクトであり、それが私たちの使用方法です。 したがって、列オブジェクトのリストを作成する3つの方法があります。 |
| |
最初の方法は手動で行うことで、すべてを入力するだけです。 だから私がこれを実行するとしたら、 |
| |
3つのテーブル参照... 3つの列参照、NPN1、PNP1、PNP2。 |
| |
コード内と、そのCNames変数にカーソルを合わせたときの両方で中括弧に注意してください。 これらの中括弧...これらの中括弧を見ると、JSLのリストを扱っていることがわかります。 |
| |
さて、それはリストを取得する1つの方法です。 他のいくつかの方法について話しましょう。 これは、最終的にこの例で使用するものです。 これは |
| |
ねえ、私の現在のデータテーブルのすべての連続列を取得します。ここで名前を付けたデータテーブルのdtです。 したがって、メッセージオブジェクト、新しいリストを作成します。 |
| |
それでは、これを実行してみましょう。 |
| |
そして今、私がCNamesにカーソルを合わせると、それが私たちが望んでいるものであることがわかります。 これが、私たちが操作したい20個すべてのリストです。 |
| |
さて、これを行う最後の方法は、ユーザーがデータテーブルのどの列を選択できるようにすることです。 こんな感じです。 2つ選択します。 2つの列を選択してIVPとPNP4を選択しましょう。 |
| |
そして、これを実行すると、 |
| |
データテーブルから選択した2つの列だけを含むリストを取得します。 |
| |
さて、しかし、あなたはそのリストを手に入れました、次の仕事はそのフォーマット行をリストの各アイテムに適用することです、そしてそれはループまたは反復と呼ばれます。 |
| |
それで、これがそれをする古い方法です。 JMPのforコマンドを使用します。 これは、JMP 16の前に行うことであり、まだJMP 15を使用している場合の参考のために、ここに記載します。 しかし、 |
| |
ご存知のとおり、新しいユーザーを探すのは少し複雑で禁止されているため、JMP 16でリストを使用している場合は、はるかにコンパクトで読みやすいことができます。 リストのすべての要素に対してアクションを繰り返したい場合は、コマンドごとにこれを使用できます。 |
| |
さて、それを見て、それが何をしているのか見てみましょう。 3つの引数を取ります。引数はコンマで区切ります。右から左に取ります。 |
| |
最後の引数は、フォーマットコマンドです。フォーマットを適用し、dt NPN1に対して実行する代わりに、1つの列に対して実行する代わりに、ここにプレースホルダーを配置し、リストアイテムを選択しました。あなたはあなたが望むものを選択します。 |
| |
そうです、これは単なる単語であり、変数名です。あなたがそれを選択します。 リストアイテムを選びました。 これがプレースホルダーであり、これがリストの各アイテムに対して実行するコマンドです。 どのリスト? このリストですね。 これが私たちのリストです、それが2番目です |
| |
口論。そして、最初の引数はプレースホルダーです。 これは、リスト内のものの値を保持するためにそのプレースホルダーを使用していることを示しています。 |
| |
中括弧で囲まれているため、このコードを再利用する場合は必ず中括弧を使用してください。 |
| |
つまり、これは全体がどのように見えるかです。20行以上のコードではなく、3行のコードがあります。これには、データテーブルを開くことも含まれます。 |
| |
列名のリストを取得し、それを繰り返します... 20個の連続する列すべてに対してそのアクションを繰り返します。 すべてを実行するために、oあなたはそれがどのように見えるかを見る。 |
| |
そして、それはあります。 今、これらの各列 |
| |
形式で表示される小数点以下2桁があります。 |
| |
さて、それはそれぞれが非常に単純なことをするために使用する非常に単純な例でした |
| |
列に。 |
| |
もう少し興味深い例を示しましょう。 |
| |
これは、同じデータセットに対して、sc20に対して、 |
| |
すべての列の管理図を作成し、それらの管理図をジャーナルに追加して、全体をPDFとして保存します。 そう |
| |
それぞれに同じものを使用しており、最初の2つの引数は同じです。リスト項目が最初で、リスト名が2番目です。 しかし今、私は3番目の項目としてたくさんのコードを持っています...それぞれの3番目の引数として。 |
| |
だからここに行きます。 このスクリプト全体を実行してみましょう。 |
| |
管理図の束を開いて実行し、ジャーナルでそれらを一緒に叩きます。 そして今、デスクトップを見ると、これらすべての管理図、1ページ目、およびそれらを分離するためのページ分割を含む、このレポート.pdfを作成しました。 つまり、1ページ、2ページ、3ページです。 |
| |
したがって、この例も自分の時間で見ることができます。 プレゼンテーション資料に含まれています。 |
| |
さて、それが私たちが話している最初のテクニックです。 次のテクニックのためにログをクリアしましょう。 |
| |
さて、レポートから値を抽出します。 これはJSLでよく起こります。 あなたはある種の分析をします、多分それは分布であるかもしれません、多分それは回帰であるかもしれません、あなたはする必要があります |
| |
何かを手に入れ、そこから何かを集めてください。 多分それは平均または中央値です。 多分それは回帰からの勾配係数またはP値です。 |
| |
これが私たちの仕事であり、これに関するトリッキーな部分は、レポートが階層的で高度にネストされた構造を持っていることです。その階層を下に移動し、そのツリーを下に移動して、必要なものを正確に見つけるのは少し難しい場合があります。 だから私はあなたにトリックを教えるつもりです。 |
| |
秘訣は、いつものように分析をポイントしてクリックし、次に取得したいものをクリックすることです。 |
| |
テキストの色を赤に変更します。フォーマットを少し変更するだけです。 そして、そのスクリプトをログに保存するときに、それを使用して、その赤い項目に対処する方法を学習します。 |
| |
JSLで。 それでは、一緒にそれを見ていきましょう。 |
| |
再びJMPに戻ります。 |
| |
古き良きビッグクラスであるビッグクラスを開き、高さの列で分布を実行してみましょう。 |
| |
さて、これが私が何かを抽出したい私の配布レポートです。 中央値だとしましょう。この場合、中央値は63です。後で再利用できるように、これをJSL変数に入れます。これを使用して書き込むか、計算を行うか、またはそのようなものを実行します。 。 |
| |
これが、その番号63に対処する方法を見つけるための秘訣です。 |
| |
色を変更するか、フォントなど、私が取得したいものを変更します。 したがって、これを一度も見たことがない場合は、これを行う方法を知っておく価値があります。 |
| |
プロパティのツールバーにボタンがあります。これはJMP16の新しいボタンだと思います。 |
| |
したがって、このレポートのプロパティをオンにすると。 |
| |
この木を下って移動し、必要なものを見つけることができます。 だからこれを見てください。 |
| |
番号列ボックス、右。 また、レポートのさまざまな部分をクリックすると、対応する |
| |
プロパティパネルでは、表示ボックスの種類であるアイテムが強調表示されます。 |
| |
さて、これらすべての結果が含まれているのは、これらすべての数値が含まれている数値列ボックスであることがわかります。たとえば、これを取得するだけで、変更します。テキストの色を赤に。 |
| |
ちょうどそのように。 |
| |
次に、プロパティパネルを閉じます。 |
| |
レポートがあります。このスクリプトを拡張ログに送信しましょう。 |
| |
赤い三角形、スクリプトをログに保存します。 |
| |
そして今、そのログを表示しています。 |
| |
これが私たちが望む部分です。 ご存知のように、その中央値のテキストの色やその他の統計を赤に変更する部分を含む配布コマンドがあります。 それでは、もう少し詳しく見ていきましょう。 |
| |
さて、ここにそのコードがあります...拡張ログからの同じコード。 ここにコピーして少しフォーマットしたので、必要なものについて詳しく説明できます。 |
| |
したがって、これを行った理由は、これから解釈するこの部分を取得するためでした。 送信を使用してレポートを作成し、その中でディスパッチします。 |
| |
そして、ここでは、ディスパッチする4つの引数に焦点を当てます。 最初の3つが必要です。4番目の引数は色を変更することです。これは私たちが興味を持っていることではありません。 必要な要素である表示ボックスに対処することに関心があります。 そう |
| |
この最初の議論はナビゲーションです。 それは私たちに教えてくれます、表示ボックスに行きます、これらは実際にはアウトラインボックスです、アウトラインボックスに行きます |
| |
ここ。それでは、そのレポートを見てみましょう。 繰り返しになりますが、JMPで、レポートにこれらのレベルのネストがあることに気付いたと思います。 |
| |
外側のアウトラインボックスの分布。 その中にはアウトラインボックスの高さがあり、その中にはアウトラインボックスの分位数があり、その分位数の中には抽出する必要があるものがあります。 |
| |
それが私に言っていることです。 その木を歩くように言っています。 高さと分位数が必要でしたが、それでそれがわかります。 |
| |
良い。 次の2つの引数は、これについて何かを教えてくれます...私たちが試みているこの要素は、私たちが赤くなったということです。 それは私たちに教えてくれます... 3番目のものはそれが何であるかを言います、それは数字の列ボックスです、私たちはそれをプロパティで見ました。 |
| |
そして2番目の引数は私たちにタイトルを教えてくれます |
| |
その番号の列ボックスの。 これは空白です。 これにはタイトルがなくても大丈夫です。 できます...この情報を使用してそのデータを取得できるため、ここにタイトルが表示される場合と表示されない場合があります。 |
| |
さて、これができたので、その情報を取得して使用します |
| |
中央値を抽出します。 |
| |
これを行うコードは次のとおりです。 ここから23行目で始まり、29行目を通過します。 |
| |
データテーブルを再び開きます、 |
| |
分布に名前を付け、連続分布を実行します。 |
| |
プロダクションスクリプトで赤くする必要がないため、そのディスパッチとレポートへの送信はありません。 |
| |
そうですね、分布分析を実行し、プラットフォームに名前を付けます。 |
| |
これは重要です、あなたはしなければなりません...あなたはレポートレイヤーにアクセスしています。 この行で抽出しているので、このレポートオブジェクトであるrdistが作成されます。 |
| |
そして、これが魔法が起こる線です。 これは私たちがそれをつかんでいるところです |
| |
その中央値をJSL変数mdnに割り当て、これについてはログに書き込みます。 それで、これについてもう少しお話ししますが、最初にそれを一度だけ実行して、それが何をするかを見てみましょう。 |
| |
23行目を実行します。おっと、代わりにこの方法で実行しましょう。 行を実行してみましょう...行23から29。 |
| |
配布を行いました。 赤ではなく、中央値を抽出しました。これでmdnに保存され、その変数の値が63であることがわかります。 |
| |
中央値は63です。 完全。 |
| |
大丈夫。 |
| |
これが、抽出している行です。 |
| |
中央値、レポートからのその数63。 |
| |
それを見てみましょう。 ここでこれを呼び出して、できるようにします |
| |
私たちと同じように、これを参照してください。 |
| |
これがその行です。 再び整理されているので、各要素を個別に見ることができます。 |
| |
63、レポートからの中央値。 |
| |
これが私たちがそれに到達する方法です。 |
| |
これはsubscript ... subscriptinigと呼ばれます。 JSLコードに角かっこが表示されている場合は、オブジェクトに添え字を付けていることを意味します。 そのオブジェクトは、ある種のコンテナであり、表示ボックス、 |
| |
多くの場合、リスト。 この方法でリストに添え字を付けることもできます。 つまり、私たちが行っているのは、はい、このレポートオブジェクトでネストされたアイテムを抽出しているということです。 |
| |
最初に行うのは、高さのアウトラインボックスです。 あなたはそれを覚えています、そしてそこから私たちは分位数ボックスに行きます、あなたはそれを覚えています。 |
| |
そして今、私たちは正しい場所にいます。 必要なものを取得する必要があります。必要なのは数字の列ボックスです。 |
| |
使用できるタイトル(つまり、ここにあり、タイトルはありません)ではなく、番号で参照しています。 これは、分位数のアウトラインボックスの最初の数値列ボックスです。 |
| |
だからあなたはこれを見て自分自身に言うかもしれません、ちょっと待ってください、ここに数字があります。 それも数字のボックスですよね? いいえ、実際にはそうではありません。 これは文字列の列ボックスです。必要に応じて、これらすべてをチェックできることを忘れないでください。 これも、プロパティからです。 |
| |
そして、ここをクリックすると、 |
| |
番号列ボックス、文字列列ボックス、文字列列ボックス。 ここでそれらを見ますか? 文字列...文字列番号なので、最初の番号の列ボックスです。 |
| |
そして、それはこれらの数字のすべてをつかむつもりです。 |
| |
さて、私たちがする必要がある最後のことはこの添え字です。 このように添え字を付けると、6番目の要素を取得してください... 1、2、3、4、5、6。 それが中央値です。 63です。 そして、この行を実行すると、レポートの添え字になります。後で再利用できるように、その中央値を取得します。 |
| |
したがって、レポートから何かを取得する方法があります。 プレゼンテーション資料で共有する別の例があります。 |
| |
タイトルがあり、表示されている要素は、そのような状況に遭遇した場合に、それをモデルとして使用して独自の作業を行うことができます。 |
| |
さて、最後に説明するのは、スクリプトを実行しているユーザーから入力を取得する方法です。 |
| |
また、分析するファイルや、分析するデータテーブルの列を選択してもらいます。 だからこれはおそらく最も一般的です |
| |
初心者のスクリプターがやりたいこと。 1つの列で何かを実行するようにスクリプトを設定しましたが、組織内の他の人に何かを提供したいと思います。 |
| |
異なるデータに対して彼ら自身にそれをさせるためですよね。 したがって、スクリプトをこのように一般化して、ユーザーがファイルまたは列、あるいはその両方を選択できるようにする場合は、 |
| |
スクリプトを一般化し、その価値を大幅に高めています。 あなたはそれをあなたの組織の他の人々に与えるつもりです。 彼らはあなたの仕事を複製し、すべてのクリックを経ることなくそれを素早く行うことができます。 |
| |
さて、このセクションでは、ケーススタディではなく、洗濯物のリストです。 ユーザーにファイルを選択させる3つの方法と、ユーザーに列を選択させるために使用できる2つの方法を紹介します。 |
| |
そして、ファイルを選択する方法から始めましょう。 いつものように、ログで何かをしてからそれをコピーすることから始めます。 これが... Big Classを開くと、次のようになります。これはログに記録され、BigClassを開きます。 |
| |
dt。この場合はdtを使用しているので、BigClassを開くと |
| |
今では... dtはビッグクラスを指しています。 そして、私は自分の制作スクリプトを続けます。 |
| |
これが、ユーザーが必要なファイルを選択できるようにするために必要なことです。必要なのは、dtが他の何かを指すようにする方法を見つけることだけです。 |
| |
スクリプトの残りの部分を記述し、dtを使用すると、最初にこれを変更できます。 dtはもはやビッグクラスを指しているだけではありません。それは何か他のものを指すでしょう。 |
| |
了解しました。それはユーザーが決定するものです。 |
| |
スクリプトを実行している人。 さて、これがあなたができる最も簡単なことです、私はあなたができると思います...あなたはデータテーブルを開く代わりにこの行を使うことができます。 スクリプトの最初でこれを使用してdtを割り当てる場合、 |
| |
つまり、JMPがこのスクリプトを実行し、そのdtを与えるということです。 |
| |
前面にあるデータテーブルに名前を付けます。 |
| |
したがって、ユーザーの観点からは、データテーブルを開くことです。ここで、sc20を開いて、sc20を作成します。 |
| |
私の現在のデータテーブル。 ここまで見ますか? このウィンドウに表示されているのは、現在のデータテーブルです。 |
| |
したがって、ユーザーがデータテーブルを開いてスクリプトを実行し、この行に遭遇した場合、dtはsc20を指すようになります。 |
| |
これは非常に強力な方法です。 それの問題は...それはあなたのユーザーが何をすべきかを正確に知っている必要があるということです。 最初にデータファイルを開いてからスクリプトを実行する必要があることを知っておく必要があります。 |
| |
もう少し頑強なことができます。 スクリプトの実行時にファイルチューザーを表示できるため、ディレクトリ構造をナビゲートして、開く適切なファイルを見つけることができます。 |
| |
これを行うのは非常に簡単であることがわかりました。 あなたがしていることは、ここにあるすべてのものを取り除くだけで、ビッグクラスへの参照を取り除くだけで、引数なしでオープンと言うだけです。 |
| |
そして、JSLが試みたとき... JMPがこの行を解釈しようとしたとき、ユーザーは何かを開きたいと言っていますが、私には何もわかりません...何がわかりません。 彼らが決定できるように、ファイルチューザーを見せましょう。 |
| |
それでは...これを実行しましょう。 dt =オープン。 |
| |
スクリプトを実行します。 これが一般的なファイルチューザーです。デスクトップからIrisを開きます。 |
| |
アイリスは開いています、そしてもちろん、それはdt名を持っています。 |
| |
すべてのJMPファイル、すべてのファイル、そうです。 ここにはたくさんのものが表示されている可能性があります。 |
| |
したがって、より多くの制御が必要な場合は、おっと、より多くの制御が必要な場合 |
| |
ユーザーが行う選択は、openを使用する代わりに、pickfileと呼ばれるものを使用します。 |
| |
ファイルの選択は、いくつかの異なるオプションがあるコマンドです。 私はそれらのうちの3つだけを使用しています。 |
| |
この例を見てみましょう。 したがって、ピックファイルの最初の3つの引数は、チューザーウィンドウに表示されるタイトルです。 |
| |
チューザーが起動するディレクトリと、そのチューザーから開くことができるファイルを示すフィルターがあります。 それでは、これを実行しましょう...この行、このコードのセクション、pick fileコマンドを実行して、結果をPFに保存します。 |
| |
それを実行します。 |
| |
さて、それがここでのその議論であることに注意してください、Excelファイルを選択してください。 これが、ウィンドウのタイトルに表示されているものです。 |
| |
フォルダー、2番目の引数のパス、そこから始まります。 |
| |
そして3番目のビットであるファイルフィルターは、ユーザーが開くのに優れたファイルのみを表示することを示しています。これはここにあります。 Excelファイルから変更することは許可されていません。 私はExcelファイルに制限されています。 |
| |
それでは、サンドイッチと言って、[開く]をクリックしましょう。 |
| |
さて、ちょっと待ってください、なぜそれが開かなかったのですか? |
| |
さて、確認してみましょう。 PFはピックファイルと同じです。 PFとは何ですか? ああ、PFは私たちが開きたいものへの道です。 openコマンドはまだ発行していません。 ファイルの選択はファイルを開くのではなく、ファイルを選択するだけです。 |
| |
サークルを閉じるには、次のことを行う必要があります。 を開いてテーブル参照を作成します |
| |
必要なファイル、必要なExcelファイルを指すPF変数。 |
| |
そこにそれがある。 これでサンドイッチデータテーブルが開き、dtができたので、必要に応じてスクリプトを続行する準備が整いました。 |
| |
ここで一時停止して、重要なことをお見せしましょう。 このような問題が発生し、すべての引数がわからず、詳細を知りたい場合は、ファイルを選択してください。いくつかのことがあります。 まず第一に、あなたは少し得る |
| |
ホバーヘルプ、構文に関する情報を含む小さなポップアップ。 これがより良いオプションです。 スクリプトウィンドウでそれを右クリックし、 |
| |
スクリプトインデックスで調べることができます。 スクリプトインデックスは、JSLプログラマーにとって非常に重要なツールです。 |
| |
それはあなたが探しているコマンドを持っています。 引数のリストといくつかの説明テキストがあり、非常に重要なのは、実行してその機能を確認できる例がいくつかあることです。 したがって、ここでこの例を実行すると、ピックファイルが表示されます。 |
| |
さて、行きたくない場所に送ってくれました。 |
| |
閉じましょう。 |
| |
そうすれば、このコードを実験して取得し、このコードを盗んで、必要に応じてスクリプトで使用することができます。 |
| |
さて、それはスクリプトインデックスです。 ヘルプメニューからも利用できます。 スクリプトメニュー...そこにあるものを見てください。 |
| |
現在のデータテーブル、ネイキッドオープン、またはピックファイル。 他の方法もありますが、それらは最初に3つの良い方法です。 |
| |
次に、操作する列をユーザーに選択させる方法について説明します。 |
| |
ここにいます...ログから何かをコピーしました。 価格というデータテーブルを開きました。それに、リンゴの価格を時系列で示すグラフを作成しました。 |
| |
ポイントアンドクリックの部分を示すのではなく、スクリプトを実行するだけです。 拡張ログからスクリプトを抽出する方法はすでにご存知だと思いますので、スクリプトの機能を見てみましょう。 価格を開き、私のグラフ、リンゴと日付、時間の経過に伴うリンゴの価格があります。 |
| |
だから、このデータテーブル、価格を見てください、ええ、リンゴがありますが、私もこれらすべての人を持っていますよね。 では、どのグラフを見たいのか、どの列をグラフ化したいのかをユーザーに教えてもらいたい場合はどうすればよいでしょうか。 |
| |
それがこのセクションの内容であり、ユーザーに選択させます。 |
| |
わかった。 |
| |
そこで、2つの方法について説明します。 これが最初のものです。 |
| |
ユーザーが選択した列を操作しているのです。 |
| |
そして、これは以前にも見たことがありますが、2番目のケーススタディでは、この構文を以前に見たと思います。 ええ、これが私たちがリストを作る方法です |
| |
これには、データテーブルで選択されている列が含まれています。 それでは、そのデータテーブルに戻りましょう。 |
| |
選択します。おそらく3つの列と |
| |
走りましょう |
| |
これ。実際、私はdtを実行する必要があると思います。 これらの両方を実行してみましょう。 |
| |
鶏肉、コーヒー、卵。 |
| |
わかった。 |
| |
そう。 |
| |
どちらを操作したいですか? 操作方法、ループを使用してリストを反復処理する方法はご存知ですが、私たちはそれを行っていません。 ショートカットを使用します。 私は見て言うつもりです、 |
| |
ユーザーが複数を選択した場合は、最初のユーザーをグラフ化するだけです。 そのため、ユーザーはスクリプトを実行する前に、鶏肉、コーヒー、卵を選択しました。 鶏肉のグラフをあげたいだけです。 |
| |
そうです、それが次の行です。 添え字があります。 最初のアイテムを取得するために、CNamesリストに添え字を付けています。 |
| |
だからこれを実行します。 |
| |
今、私はその素晴らしい変数、私の列を持っています、 |
| |
これには、リストの最初の項目であるチキン、コロン付きの列参照があります。 |
| |
これで、グラフビルダーを実行できます。 今、私たちは私たちの生活を続けることができます、唯一の違いは、ここでリンゴだった場所を置き換えたことです、 |
| |
それが私の列になりました。これが私たちが行った唯一の変更であるため、これを実行すると、鶏肉の価格のグラフが表示されます。 |
| |
良い。 |
| |
了解しました。これは1つの方法ですが、前に説明したように、これにはユーザーが何をしなければならないかを知っている必要があります。 これには... |
| |
この方法では、ユーザーがデータテーブルを開き、これを選択してからスクリプトを実行する必要があることを知っている必要がありますが、これは少し面倒です。 そう |
| |
代わりに、実行時に列選択ダイアログをユーザーに表示する方が少し堅牢です。 これがそのように見えるものです。 構文は少し複雑です。 私はそれについて高レベルで話すことで、すべての詳細に入るつもりはありません。 以前と同じようにデータテーブルを開きます。 |
| |
列ダイアログと呼ばれるこのコマンドを使用しています |
| |
チューザー...列チューザーをユーザーに表示します。 |
| |
繰り返しますが、それは多くの議論を持っています。 私はカップルだけを使用しています。 私がやっていることは、「商品を選択する」というボタンを教えてください。ユーザーは最大でその列を1つ選択でき、少なくとも1つを選択する必要があります。 |
| |
それでは、ここで、60行目からこのスクリプトを実行してみましょう。 |
| |
開始価格、これが私の対話であり、非常に小さなコードで私が持っている豊かな対話が何であるかを見てください。 これが、私たちが使用しているこのコラムダイアログの長所です。 だから私は私の選択としてコーヒーを持って、OKをクリックするつもりです。 |
| |
良い。 スクリプトに戻ると、この行を実行しただけです。 |
| |
そしてそれは私たちが選んだ結果がdlgに保存されているということです。 それを見てみましょう。 |
| |
わかりました、それは少し複雑です。 dlgはリストであると表示されます。中括弧を参照してください。ネストされた中括弧がいくつかあるので、ネストされたリストのようです。 |
| |
これがあなたをそこに導く添え字です。 これを説明するのに多くの時間を費やすつもりはありませんが、必要に応じてこのコードをコピーできます。 だから、対話から抜け出して、コーヒーと書かれている部分だけを手に入れるために、そこにあるコーヒーへのコラムの参照、 |
| |
これが私の列を作るための添え字ですので、この行を実行してください。 |
| |
そして今、私の列にはコーヒーの列への参照が含まれています。これは以前と同じです。 を使用してグラフビルダーを実行します |
| |
私のcolは、リンゴの代わりに使用するので、コーヒーなど、ユーザーが選択したものをすべて入手できます。 |
| |
さて、それは私があなたと共有したかったすべてです。 JSLプログラミングをこのように始めている人のために、ちょっとしたアドバイスで締めくくります。 |
| |
アドバイスは、ご存知のように、JMPにできるだけ多くのコードを修正させることです。 そして、それが拡張ログの目的です。ログからそのコードを盗みます。 これがほとんどのスクリプトです。 |
| |
次に、結合組織、つまりものをまとめて使用可能なプロダクションスクリプトにする部分を作成する必要があります。 そのコードを盗むこともできます。 スクリプトインデックスからそれを盗むつもりです、あなたは確かにこのプレゼンテーションから盗むことができます。 |
| |
すべての資料はこのプレゼンテーションに含まれています。また、JMPユーザーコミュニティのJSLクックブックから盗むこともできます。これは、多くの一般的なJSLタスクがあり、それらを実行するために必要なコードを提供する素晴らしいリソースです。 |
| |
繰り返しになりますが、強調しておきますが、構文をあまり気にしないでください。 コードを取得して、必要なものに置き換える方が簡単です。 あなたは何も壊すつもりはありません、そしてあなたはより多くの経験でこの構文の微妙さを学ぶでしょう。 |
| |
ご清聴ありがとうございました。 |