良いクエリは成功のためにあなたを設定することができます
レベル:初心者
SASのJMP研究開発ディレクター、Brian Corcoran氏
JMPは、さまざまなデータ形式を製品に取り込むためのさまざまな方法を提供します。その理由は明らかです。 データを収集しフォーマットするために長年にわたって開発されたツールはたくさんあります。 ほとんどの場合、これらのツールではデータをJMPデータテーブルに変換できません。 分析のためにこのデータをJMPに取り込む必要があります。 他の場合には、データはどこかのデータベースにあるかもしれません、そして始める前にそれを抽出する必要があります。 データを取得するには貴重な時間がかかります。 JMPは、この作業に役立つ強力なデータ収集機能を追加するために長年にわたって進化してきました。
このホワイトペーパーでは、JMPでクエリビルダー機能を使用する方法の簡単な例と、Excelウィザードの使用方法の簡単な例を示します。 データ自体への洞察が、クエリ自体の準備から得られるという点で、その旅が報酬にもなり得ることもまた願っています。デスクトップ版のスクリーンショットにはWindows版が使用されていますが、ここで説明している機能はすべてMac版のJMPでも使用できます。JMP 14が使用されましたが、JMP 13も同様にすべてのことを実行できます。
本稿では、架空の使用例を紹介します。 あなたが世界の動向を研究していて、世界銀行のデータベースがしばしば貴重な情報を提供していると想像してください。 同僚から、2017 World Development Indicatorのデータが最近入手可能になり、それらのデータが社内のSQL Serverデータベースに追加されたことがわかりました。 これは40万件を超える観測と62列を含む大きな表です。 [1] JMPを開き、[ファイル] - > [データベース] - > [クエリビルダー]を選択し、データベース接続を開いてテーブルをポイントします。 Query Builderの最初の画面で、world_bankテーブルをプライマリテーブルとして選択し、「Table Snapshot」を使用して確認します。
Query Builder Table Snapshotクエリビルダーテーブルのスナップショット
少なくとも典型的なJMPユーザにとっては、少々奇妙なフォーマットです。 国情報には4つの変数または列があり、その後、毎年のデータ用の列が存在します。 行には領域と思われるものがあり、次に測定中のデータがあります。 いくつかの点で、それは典型的なJMPテーブルに対する期待の反対に見えます。 国の名前アラブ世界 "は地域を表しているように見えるので、これも混乱を招きます。 を押すと今すぐインポートボタンを押すとテーブルが表示され、物事が少し明確になります。 真ん中までスクロールすると、行が問題の国で始まり、次に「特定の主題に関するデータ」のようになります。農村人口 」 これはすべて国別にソートされているので直感的には思えません。
Immediate Import Table Appearance即時インポートテーブルの外観
最初からやり直してみましょう。 今回は、先に進んで「 構築クエリ " のではなく " 今すぐインポート 」 最初の4つの変数には国情報が必要であることがわかっているので、それらを選択して「 追加する " の中に含まれる列クエリービルダーの列選択パネルのタブ。 ここにはたくさんのデータがあるので、2010-2017のために変数を実行しましょう。 この時点で、ダイアログの上部は次のようになります。
Initial Column Selection初期列選択私たちは以前の状況をまだ改善していません。 今、私たちは標識コードに可変」 並び替えクエリビルダーの[ペイン]をクリックします。 これにより、問題の地域や国ではなく、調査対象の主題別にデータが整理されます。 これは分析のためにより直感的に思えます。
Ordered by Indicator Code標識コード順
データにはまだ問題があります。 まず、現在関心のない地域グループがあります。 これらの集計エントリを除外する方法また、次のように特定のアイテムをクエリするための最善の方法は何でしょうか 「肥料の消費」 ?
注文しない場合は、すべてのデータをJMPにインポートしてから地域グループを削除することが可能です。 「インジケータコード」 しかし、それはデータを分析する人に負担をかけます。 それが誰かがクエリを設定していない場合、それは混乱を招く可能性があります。 クエリ内で、関心のある国を選択するだけでも可能です。 欧州連合のすべての国が必要な場合はどうなりますか?(私は北米を使用するつもりでしたが、世界銀行の定義にはアメリカ、バミューダ、カナダしか含まれていません!)手動で選択することもできますが、もっと良い方法があります。 そのために、JMPの別のツールであるExcel Wizardをすぐに起動します。
このシナリオでは、私たちが世界銀行のデータを頻繁に操作しているとします。 国コードは重要ですが、直感的にはわかりません。 あなたがウェブサイトを通して見ることからわかるように、テーブルはしばしば完全な国名を指定せずにコードを使用します。 これらのコードを別の表にまとめておくと便利です。 このようなテーブルが存在し、WebサイトからExcelファイルとして簡単にインポートされます。 したがって、この場合は国と国コードのテーブルでExcelウィザードを開きます。世界銀行のWebサイトでは、これらをCLASS.xlsというわかりにくいテーブルにまとめていますが、名前を変更することもできます。 ファイル内には、「経済のリスト」と「グループ」という2つのテーブルがあります。 「グループ」を見てみましょう。
Preview of Groups Table in Excel FileExcelファイルのグループテーブルのプレビュー
クエリービルダーのデータで見たアラブ世界のグループ化があります。これは有望に見えますが、プレビューが100行で終了するため、スクロールダウンしてもヨーロッパは表示されません。 を選択すべての行を表示 「そして、私たちはすべてを見ることができます。ヨーロッパと中央アジア 「」 ヨーロッパ地域と」 欧州連合 」 「 欧州連合グループには、現在組合に加盟しているすべての国の国番号が含まれています。 これを使用してQuery Builder内の国を選択できますか?答えはイエスです、それでは先に進み、必要なグループだけを抽出しましょう。 プレビューの最初の行を「 欧州連合その後、「」の横にある緑色のプラス記号を押します。データは行から始まります。
Select the First Row in “European Union”「EU」の最初の行を選択
これでダイアログの「次へ」ボタンを押すことができます。最後の行を「 欧州連合 "の横にある緑色のプラスを押しますデータは行で終わります 」 これにより、データが、関心のある国だけに絞り込まれます。
今、我々は選択することができますインポートそして、欧州連合の国々のための28のエントリで列を取得します。 先に進み、その結果のJMPテーブルを“ EU.jmp”として保存します。
これで、クエリービルダーに戻ることができます。 リストから国を選択するという面倒なプロセスで、興味のある国を選択することができました。 "国名" または 「国コード」 ただし、Query BuilderにはMatch Column Valuesという強力なフィルター・タイプがあります。 これを使用するには、最初に「 国コード」 にフィルターペイン これにより、すべてのコードを含む長いリストが作成されます。 これで、赤い三角形のメニューを「 t1。国コード " にとってフィルターの種類そして「 列値の一致 」 開いているJMPテーブルの名前を示すボックスが表示されます。 まだ「EU.jmp」が開いているので、リストに表示されます。 それを選択し、変数( 国コード私たちは合わせたい 次のことを確認することも重要です。すべての行 「」ではなく、「」がドロップダウンリストから選択されます。選択された行というのは、私たちはこの場合すべての国を望んでいるからです。
Selecting the Match Column Values filter「列値の一致」フィルターの選択
これは、私たちの結果をEU加盟国が関与している所見のみに減らすでしょう。 ここには本当に魔法はありません。 国コードを置き換えるWHERE / IN句を作成しています。 あなたが見れば SQL クエリービルダー内のペインで、JMPが生成しているSQLを確認できます。
Generated SQL生成されたSQL
しかし、うまくいけば、私たちはそのプロセスをより簡単に達成できるようにしました。 データを実際に関心のあるものに絞り込んだので、分析したい特定の情報を選択しやすくすると便利です。 これをするために、我々はドラッグすることができますインジケータ名」 にフィルターペイン ここで関心のある項目をクリックしてからクエリを実行することはできますが、どのユーザーにとってもよりインタラクティブなインターフェースを持つことができればいいでしょう。 赤い三角形のメニューは「 t1。表示名」 そして「 実行時にプロンプト 」 これにより、エンドユーザーへのプロンプトのタイトルを指定するためのダイアログが表示されます。
Prompt on Run実行時にプロンプト
さて、私たちがクエリ実行」 ボタンをクリックすると、アイテムのリストが表示されますので、興味のあるアイテムを選択してください。 例えば、私達は選ぶことができます 「GDP成長率(年率%)」 そして28行のテーブルを取得します。 それをグラフビルダーに入れることができます。 をドラッグ "国名" にマップ形状ドロップエリアはヨーロッパの地図を作成するでしょう、そしてそれから我々は興味のある年をドラッグすることができます。 2014年以降、データはスパースになり始めているので、その年を実行すると次のようになります。

JMPは「スロバキア共和国」ではなく「スロバキア」を探しています。再コーディングしてください。 このデータを見ると、いつも同じような操作をしているように見えます。マップシェイプの国名を選択してから、目的の年を選択して結果を調べます。 ある年を何度も見ているのであれば、スクリプトを保存して、それをQuery BuilderとしてQuery Builderに入れるのが合理的です。クエリ後スクリプト 。このためのプレビューペインによるタブがあります。 前のグラフに移動し、赤い三角形のメニューを使用して[スクリプトを保存] - > [スクリプトウィンドウへ]を実行すると、次のようなスクリプトが表示されます。
Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( Color( :Name( "2014" ) ), Shape( :Country Name ) ),
Elements( Map Shapes( Legend( 7 ) ) )
);
これをに貼り付けるとクエリ後スクリプトタブをクリックして調べたい観測を選択すると、データが抽出されてJMPテーブルが作成された後も常に同じGraph Builderレポートが実行されます。 これにより、繰り返しの作業が大幅に簡略化されます。
Post-Query Scriptクエリ後スクリプト
最良の部分は、クエリを保存するときに、エンドユーザーが[クエリビルダー]ダイアログを表示しないように設定できることです。 を選択してオープン時に実行ドロップダウンメニューの[クエリ名]フィールドをクリックしてクエリを保存すると、エンドユーザにはプロンプトと、結果のテーブルとグラフのみが表示されます。
Run on Openオープン時に実行
Query with Run on Open started from Recent Files最近のファイルから開始して実行時にクエリを実行する Matching Columnsフィルタを使用する際の注意点の1つは、照合する値を持つテーブルが、クエリを実行するマシン上に存在する必要があることです。 これが問題になる場合は、これを回避する方法があります。 一致する列を使用してフィルタを作成したら、フィルタの赤い三角メニューに移動します。 この例の場合、それは「 t1。国コード」。 [フィルタの種類] - > [手動リスト]を選択します。これにより、Matching Columnsフィルタが作成した値がSQLに使用されるテキストリストにインポートされます。 これは次回の保存時にクエリに保存され、データテーブルを一致させる必要がなくなります。 この方法の欠点は、選択した一致値を動的に変更したりクエリを変更したりする機能が失われることです。
この時点で、私たちは大量の紛らわしいデータをフィルタリングし、エンドユーザーに出荷できる再現可能なクエリと分析を作成しました。 クエリを使用している人は、クエリについての知識、あるいはJMPについての知識をまったく必要としません。
使用されている規約
クエリービルダーウィンドウペインは太字
ボタン/ダイアログコントロールは引用符と太字」
変数/列名は“ 引用符とイタリック体 」
[1] 世界銀行グループ 世界開発指標 、世界銀行グループ、nd ウェブ。2018年1月25日。 https://datacatalog.worldbank.org/dataset/world-development-indicators 。作成コモンズCC BY 4の下で取得されます。0ライセンス