JMP是否可以識別值並填寫新值我想知道是否有人可以幫助我找出實現此目的的JMP腳本或自動方法。
我有一組郵政編碼,我希望JMP識別並用相應的縣級代碼填寫新列。 我不確定如何最好地描述這一點,或者不確定是否有這個術語。 我想我想讓JMP“人行橫道”郵政編碼並將其轉換為縣級代碼。
例如,在一個文件中,我將這些郵政編碼作為數據:
| 08106 |
| 08107 |
| 08108 |
| 08109 |
| 08110 |
| 08110 |
| 08201 |
| 08202 |
| 08203 |
| 08213 |
| 08214 |
| 08215 |
| 08215 |
| 08217 |
| 08218 |
| 08219 |
我希望JMP瀏覽每個郵政編碼,並在相應縣代碼的新列中產生。 在一個單獨的文件中,我具有相應的zip->縣代碼。
| 08110 | 34007 |
| 08201 | 34001 |
| 08202 | 34009 |
| 08203 | 34001 |
| 08204 | 34009 |
| 08205 | 34001 |
| 08210 | 34009 |
除了手動執行此操作外,我會在每個郵政編碼中搜索縣代碼是什麼,還有自動化的方法嗎?
謝謝你的幫助!
回复:是否有可能讓JMP識別一個值並填寫一個新值使用關聯數組製作查找表,例如(未經測試的代碼,dtZtoC是您到縣信息的zip表)
lookup = associativearray();
for( i = 1, i <= nrows(dtZtoC), i += 1,
lookup[ dtZtoC:zip[i] ] = dtZtoC:county[i];
);
然後使用循環或列公式創建新列(未經測試...這是County的列公式的外觀)
lookup[zip]
列公式取決於查找表,以後將不可用,因此完成後從列中刪除該公式。 或者,使用類似這樣的循環,而沒有列公式(未經測試...)
for( i = 1, i <= nrows(dtData), i += 1,
dtData:county[i] = lookup[dtData:zip[i]];
);
編輯:將地理編碼Lat-Lon反向轉換為Zip使用虛擬聯接;虛擬連接在這裡也是一個不錯的選擇。 虛擬聯接增加了複雜性以獲得靈活性。如果到縣映射的郵政編碼發生更改,只需更新dtZtoC表,然後dtData表將自動獲取更改。 但是現在您需要兩個表。
回复:是否有可能讓JMP識別一個值並填寫一個新值這是虛擬聯接的外觀(點擊並單擊,不需要jsl)
金鍵值在列中必須唯一
默認情況下,County [zip]列是隱藏的,我在圖片中未隱藏它。 它最適合已保存的表,並且可能需要在藍鍵表之前打開金鑰匙表(您會知道該鍵是否為灰色)。
編輯-您可能希望將代碼保留為字符數據,我只是注意到前導零不見了!
回复:是否有可能讓JMP識別一個值並填寫一個新值你好@SeaAardvark ,
我不明白您是否在另一個表中有兩個匹配的列。 如果是這樣,我將使用表聯接或更新一次,然後編寫腳本。
如果您在地圖上有數據(沒有鍵匹配表),那麼還有解決方案。 過去,我們在討論基於位置的表更新:
https://community.jmp.com/t5/Discussions/join-tables-based-on-location/mp/14827/highlight/true#M13786
讓我們知道是否有幫助,
羅恩