¿Es posible que JMP reconozca un valor y complete un nuevo valor?Me pregunto si alguien podría ayudarme a encontrar un script JMP para esto o una forma automatizada de hacerlo.
Tengo un conjunto de códigos postales que quiero que JMP reconozca y complete una nueva columna con el código correspondiente a nivel de condado. No estoy seguro de cuál es la mejor manera de describir esto o si hay un término para esto. Supongo que quiero que JMP "cruce de peatones" los códigos postales y los convierta en códigos a nivel de condado.
Como ejemplo, en un archivo, tengo estos códigos postales como datos:
| 08106 |
| 08107 |
| 08108 |
| 08109 |
| 08110 |
| 08110 |
| 08201 |
| 08202 |
| 08203 |
| 08213 |
| 08214 |
| 08215 |
| 08215 |
| 08217 |
| 08218 |
| 08219 |
Quiero que JMP revise cada código postal y produzca en una nueva columna del código de condado correspondiente. En un archivo separado, tengo el código postal correspondiente -> códigos de condado.
| 08110 | 34007 |
| 08201 | 34001 |
| 08202 | 34009 |
| 08203 | 34001 |
| 08204 | 34009 |
| 08205 | 34001 |
| 08210 | 34009 |
Aparte de hacer esto manualmente a mano, donde buscaría cada código postal para averiguar cuál es el código del condado, ¿hay alguna forma automatizada de hacer esto?
¡Gracias por tu ayuda!
Re: ¿Es posible que JMP reconozca un valor y complete un nuevo valor?Use una matriz asociativa para hacer la tabla de búsqueda, algo así como (sigue el código no probado, dtZtoC es su tabla de información de código postal a condado)
lookup = associativearray();
for( i = 1, i <= nrows(dtZtoC), i += 1,
lookup[ dtZtoC:zip[i] ] = dtZtoC:county[i];
);
luego use un ciclo o una fórmula de columna para hacer la nueva columna (sin probar ... así es como se vería la fórmula de columna para el condado)
lookup[zip]
La fórmula de la columna depende de la tabla de búsqueda que no estará disponible más adelante, así que elimine la fórmula de la columna cuando termine. O use un bucle, algo como esto, sin una fórmula de columna (no probado ...)
for( i = 1, i <= nrows(dtData), i += 1,
dtData:county[i] = lookup[dtData:zip[i]];
);
editar: Geocodificación inversa lat-lon a zip utiliza una combinación virtual; una combinación virtual también podría ser una buena opción aquí. La combinación virtual agrega complejidad para obtener flexibilidad; Si cambia el mapeo de un zip al condado, simplemente actualice la tabla dtZtoC y la tabla dtData obtendrá el cambio automáticamente. Pero ahora tiene dos tablas que se necesitan.
Re: ¿Es posible que JMP reconozca un valor y complete un nuevo valor?Así es como se vería con una combinación virtual (apuntar y hacer clic, no se requiere jsl)
los valores clave de oro deben ser únicos en la columna
La columna del condado [zip] está oculta de forma predeterminada, la destapé en la imagen. Funciona mejor con las tablas ya guardadas y es posible que necesite que la tabla de la llave dorada se abra antes que la tabla de la llave azul (sabrá si la llave está atenuada).
editar: es posible que desee mantener los códigos como datos de caracteres, ¡acabo de notar que los ceros iniciales se han ido!
Re: ¿Es posible que JMP reconozca un valor y complete un nuevo valor?Hola @SeaAardvark ,
No entendí si tiene las dos columnas coincidentes en otra tabla. Si es así, usaría tablas para unir o actualizar una vez y luego escribirlo.
Si tiene los datos en el mapa (no hay una tabla de coincidencia de claves), también hay una solución para eso. En el pasado, estábamos discutiendo una actualización de tablas basada en la ubicación:
https://community.jmp.com/t5/Discussions/join-tables-based-on-location/mp/14827/highlight/true#M13786
háganos saber si ayuda,
Ron