JMPに値を認識させ、新しい値を入力させることは可能ですか?誰かが私がこれのためのJMPスクリプトまたはこれを行うための自動化された方法を理解するのを手伝ってくれるかどうか疑問に思っています。
JMPに認識させ、対応する郡レベルのコードを新しい列に入力する一連の郵便番号があります。 これをどのように説明するのが最善か、またはこれに用語があるかどうかはわかりません。 JMPで郵便番号を「横断歩道」して郡レベルのコードに変換したいと思います。
例として、1つのファイルに、データとして次の郵便番号があります。
| 08106 |
| 08107 |
| 08108 |
| 08109 |
| 08110 |
| 08110 |
| 08201 |
| 08202 |
| 08203 |
| 08213 |
| 08214 |
| 08215 |
| 08215 |
| 08217 |
| 08218 |
| 08219 |
JMPに各郵便番号を調べて、対応する郡コードの新しい列を作成してもらいたいです。 別のファイルに、対応する郵便番号->郡コードがあります。
| 08110 | 34007 |
| 08201 | 34001 |
| 08202 | 34009 |
| 08203 | 34001 |
| 08204 | 34009 |
| 08205 | 34001 |
| 08210 | 34009 |
これを手動で行う以外に、各郵便番号を検索して郡コードを見つける以外に、これを行う自動化された方法はありますか?
ご協力いただきありがとうございます!
Re:JMPに値を認識させ、新しい値を入力させることは可能ですか?連想配列を使用して、次のようなルックアップテーブルを作成します(テストされていないコードが続きます。dtZtoCは郡情報へのzipのテーブルです)
lookup = associativearray();
for( i = 1, i <= nrows(dtZtoC), i += 1,
lookup[ dtZtoC:zip[i] ] = dtZtoC:county[i];
);
次に、ループまたは列式を使用して新しい列を作成します(テストされていません...これが郡の列式の外観です)
lookup[zip]
列の数式は、後で使用できなくなるルックアップテーブルに依存しているため、完了したら列から数式を削除します。 または、列の数式を使用せずに、このようなループを使用します(テストされていません...)
for( i = 1, i <= nrows(dtData), i += 1,
dtData:county[i] = lookup[dtData:zip[i]];
);
編集:逆ジオコードLat-LonからZip仮想結合を使用します。ここでも仮想結合が良い選択かもしれません。 仮想結合は、柔軟性を得るために複雑さを追加します。 zipから郡へのマッピングが変更された場合は、dtZtoCテーブルを更新するだけで、dtDataテーブルが自動的に変更を取得します。 しかし、今、必要な2つのテーブルがあります。
Re:JMPに値を認識させ、新しい値を入力させることは可能ですか?仮想結合を使用すると、次のようになります(ポイントアンドクリック、jslは不要)
ゴールドキーの値は、列内で一意である必要があります
county [zip]列はデフォルトで非表示になっていますが、画像では非表示を解除しています。 すでに保存されているテーブルで最適に機能し、ブルーキーテーブルの前にゴールドキーテーブルを開く必要がある場合があります(キーがグレー表示されているかどうかがわかります)。
編集-コードを文字データとして保持したい場合がありますが、先行ゼロがなくなっていることに気づきました!
Re:JMPに値を認識させ、新しい値を入力させることは可能ですか?こんにちは@SeaAardvark 、
別のテーブルに一致する2つの列があるかどうかわかりませんでした。 もしそうなら、私はテーブルの結合または更新を一度使用してから、それをスクリプト化します。
マップ上にデータがある場合(キーマッチングテーブルがない場合)、その解決策もあります。 以前は、テーブルのロケーションベースの更新について話し合っていました。
https://community.jmp.com/t5/Discussions/join-tables-based-on-location/mp/14827/highlight/true#M13786
それが役立つかどうか教えてください、
ロン