Est-il possible que JMP reconnaisse une valeur et remplisse une nouvelle valeurJe me demande si quelqu'un pourrait m'aider à trouver un script JMP pour cela ou un moyen automatisé de le faire.
J'ai un ensemble de codes postaux que je souhaite que JMP reconnaisse et remplisse une nouvelle colonne avec le code correspondant au niveau du comté. Je ne sais pas comment décrire au mieux cela ou s'il existe un terme pour cela. Je suppose que je veux que JMP "croise" les codes postaux et les convertisse en codes au niveau du comté.
À titre d'exemple, dans un fichier, j'ai ces codes postaux comme données:
| 08106 |
| 08107 |
| 08108 |
| 08109 |
| 08110 |
| 08110 |
| 08201 |
| 08202 |
| 08203 |
| 08213 |
| 08214 |
| 08215 |
| 08215 |
| 08217 |
| 08218 |
| 08219 |
Je veux que JMP examine chaque code postal et produit dans une nouvelle colonne du code de comté correspondant. Dans un fichier séparé, j'ai le code postal correspondant -> comté.
| 08110 | 34007 |
| 08201 | 34001 |
| 08202 | 34009 |
| 08203 | 34001 |
| 08204 | 34009 |
| 08205 | 34001 |
| 08210 | 34009 |
À part le faire manuellement à la main, où je rechercherais chaque code postal pour savoir quel est le code de comté, existe-t-il un moyen automatisé de le faire?
Merci de votre aide!
Re: Est-il possible que JMP reconnaisse une valeur et remplisse une nouvelle valeurUtilisez un tableau associatif pour créer la table de recherche, quelque chose comme (le code non testé suit, dtZtoC est votre table de zip vers les informations de comté)
lookup = associativearray();
for( i = 1, i <= nrows(dtZtoC), i += 1,
lookup[ dtZtoC:zip[i] ] = dtZtoC:county[i];
);
puis utilisez une boucle ou une formule de colonne pour créer la nouvelle colonne (non testée ... voici à quoi pourrait ressembler la formule de colonne pour le comté)
lookup[zip]
La formule de la colonne dépend de la table de recherche qui ne sera pas disponible plus tard, supprimez donc la formule de la colonne lorsque vous avez terminé. Ou, utilisez une boucle, quelque chose comme ça, sans formule de colonne (non testé ...)
for( i = 1, i <= nrows(dtData), i += 1,
dtData:county[i] = lookup[dtData:zip[i]];
);
Éditer: Inverser le géocodage Lat-Lon à Zip utilise une jointure virtuelle; une jointure virtuelle pourrait également être un bon choix ici. La jointure virtuelle ajoute de la complexité pour obtenir de la flexibilité; si un mappage zip / comté change, mettez simplement à jour la table dtZtoC et la table dtData obtient automatiquement la modification. Mais maintenant, vous avez besoin de deux tables.
Re: Est-il possible que JMP reconnaisse une valeur et remplisse une nouvelle valeurVoici à quoi cela ressemblerait avec une jointure virtuelle (pointer et cliquer, aucun jsl requis)
les valeurs de clé or doivent être uniques dans la colonne
La colonne du comté [zip] est masquée par défaut, je la découvre dans l'image. Cela fonctionne mieux avec les tables déjà enregistrées et peut nécessiter l'ouverture de la table de la clé dorée avant la table de la clé bleue (vous saurez si la clé est grisée.)
modifier - vous voudrez peut-être conserver les codes en tant que données de caractères, je viens de remarquer que les zéros en tête ont disparu!
Re: Est-il possible que JMP reconnaisse une valeur et remplisse une nouvelle valeursalut @SeaAardvark ,
Je n'ai pas compris si vous avez les deux colonnes correspondantes dans une autre table. Si tel est le cas, j'utiliserais la jointure ou la mise à jour des tables une fois, puis le script.
Si vous avez les données sur la carte (pas de table de correspondance de clé), il existe également une solution pour cela. Dans le passé, nous discutions d'une mise à jour des tables basée sur l'emplacement:
https://community.jmp.com/t5/Discussions/join-tables-based-on-location/mp/14827/highlight/true#M13786
faites-nous savoir si cela aide,
Ron