2016-12-15 62 views
-1

我有一個包含村名,市場,教堂和醫院的數據集。市場,教堂和醫院不直接命名,相反,它們是按村莊列出的,所以它們可以直接與村名掛鉤。座標只能由村莊列出。我需要重新組織SAS中的數據集,以便村莊的GPS座標與其各自的市場,教堂和醫院相關聯。SAS數據重新定位 - 將信息從一列連接到另一列

下面是我嘗試做一個更好的可視化:

改造這個數據集:

Long |Lat |Village|Market |Church 
---------------------------------------- 
X(A) |Y(A) | A |A |A 
X(B) |Y(B) | B |B |B 
X(C) |Y(C) | C |A |A 
X(D) |Y(D) | D |A |D 
X(E) |Y(E) | E |B |B 
X(F) |Y(F) | F |F |F 
X(G) |Y(G) | G |F |F 
X(H) |Y(H) | H |H |F 

的東西,看起來像這樣,與市場新創建的列和教會座標(基於關閉原始村的座標):

Long|Lat |Village|Market|Market_Long|Market_Lat |Church|Church_Long|Church_Lat 
------------------------------------------------------------------------------- 
X(A)|Y(A) |A  |A  |X(A)  |Y(A)  |A  |X(A)  |Y(A) 
X(B)|Y(B) |B  |B  |X(B)  |Y(B)  |B  |X(B)  |Y(B) 
X(C)|Y(C) |C  |A  |X(A)  |Y(A)  |A  |X(A)  |Y(A) 
X(D)|Y(D) |D  |A  |X(A)  |Y(A)  |D  |X(D)  |Y(D) 
X(E)|Y(E) |E  |B  |X(B)  |Y(B)  |B  |X(B)  |Y(B) 
X(F)|Y(F) |F  |F  |X(F)  |Y(F)  |F  |X(F)  |Y(F) 
X(G)|Y(G) |G  |F  |X(F)  |Y(F)  |F  |X(F)  |Y(F) 
X(H)|Y(H) |H  |H  |X(H)  |Y(H)  |F  |X(F)  |Y(F) 

我知道這裏的格式有點奇怪,所以這裏有幾張這些樣本選項卡的圖片萊:

原始表:

所需的表:

感謝您能在這個有何啓示!

+0

包括數據作爲文本,而不是圖像。如果有人想嘗試他們測試的解決方案,他們需要手動輸入數據。 – Reeza

+0

發佈您的新CHURCH_LONG只是現有LONG專欄的副本。如果這就是你想要的問題,那麼這個問題是微不足道的。如果不是那麼發佈一個更好的例子,解釋你需要什麼。 – Tom

回答

0

正如所評論的,答案似乎只是將它們定義爲新變量而已。由於您將要定義新的變量,您可以使用長度語句來設置您希望它們出現在數據集中的順序。

data old; 

input lon $ lat $ village $ market $ church $ hosp $; 
Datalines; 
X(A) Y(A) A A A B 
X(B) Y(B) B B B B 
X(C) Y(C) C A A D 
X(D) Y(D) D A D D 
X(E) Y(E) E B B B 
; 
run; 


data new; 

length lon lat village market market_lon market_lat Church church_lon church_lat 
     hosp hosp_lon hosp_lat $ 100; 

set old; 

market_lon = lon; 
market_lat = lat; 
church_lon = lon; 
church_lat = lat; 
hosp_lon = lon; 
hosp_lat = lat; 

run; 

這將爲一個簡單的情況下工作,但如果有很多的不僅僅是市場,教堂和HOSP更多的變量,你可能有興趣在使用宏和%做循環遍歷varnames的列表,而不是手動定義新的變量。

偉大的文章宏%做:http://blogs.sas.com/content/sastraining/2015/01/30/sas-authors-tip-getting-the-macro-language-to-perform-a-do-loop-over-a-list-of-values/

+0

對不起,如果這不清楚。問題在於座標只提供給村莊。特定村莊的人們可以去任何市場,教堂或醫院,也就是說,村莊A,C和D的人都去A村的市場。 市場,教堂和醫院都被編碼,以便他們可以鏈接與村名,這將使我能夠連接市場,教堂和醫院的正確座標。但是連續的座標不會相同,因爲一個村莊的居民可能會在另一個村莊訪問市場。 – LZ48

相關問題