2014-02-12 89 views
0

我最近將兩個數據集合併成了一個非常簡單的Merge聲明。我正在使用ACS數據集和人口普查人口數據集。我需要後者的國旗在前者。當我合併的地方變量(鎮/縣,州)沒有去重複,因爲一個數據集的使用狀態的縮寫,而其他使用完整拼寫:TRANWRD修復合併錯誤?

Obs GeoID   GeoName 
    1 .   Abbeville County, SC  
    2 45001  Abbeville County, South Carolina 

我需要改變GeoName爲Obs1使它等於Obs2

請問index函數是否工作?或者我需要TRANWRD函數?謝謝。

解決:

data _null_; 
length geoName $100; 
GeoName_C = scan(GeoName,1,','); 
GeoName_S = scan(GeoName,-1,','); *-1 scans from the right in case you could have commas in the city - check for this and adjust GeoName_C to include them if it is possible; 
GeoName_S_F = stnamel(strip(GeoName_S)); 
GeoName = catx(',',GeoName_C,GeoName_S_F); 
put _all_; 
run; 

回答

0

我會做的是從國家獨立的城市,使用SAS的內置功能stnamel的縮寫轉換爲全名。

data _null_; 
length geoName $100; 
GeoName='Abbeville Road, SC'; 
GeoName_C = scan(GeoName,1,','); 
GeoName_S = scan(GeoName,-1,','); *-1 scans from the right in case you could have commas in the city - check for this and adjust GeoName_C to include them if it is possible; 
GeoName_S_F = stnamel(strip(GeoName_S)); 
GeoName = catx(',',GeoName_C,GeoName_S_F); 
put _all_; 
run; 
+0

成功拆分了鎮和州的縮寫。但是,GeoName_S_F顯示爲空白,而GeoName未連接。 – Jebediah15

+0

你有什麼版本的SAS? – Joe

+0

9.3。 GeoName_S也沒有填充。 – Jebediah15