SAS数据重新组织 - 将信息从一列链接到另一列

时间:2016-12-15 13:44:13

标签: networking sas network-analysis

我有一个包含村名,市场,教堂和医院的数据集。市场,教堂和医院没有直接命名;相反,它们按村庄列出,以便它们可以直接链接到村名。坐标仅按村庄列出。我需要重新组织SAS中的数据集,以便村庄的GPS坐标与各自的市场,教堂和医院相关联。

这是我正在尝试做的更好的可视化:

转换此数据集:

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)

我知道这里的格式有点奇怪,所以这里有几张这些样本表的图片:

原始表:

所需表:

感谢您对此有所了解!

1 个答案:

答案 0 :(得分:0)

正如所评论的那样,答案似乎只是将它们定义为新变量一样微不足道。无论如何,当您要定义新变量时,可以使用length语句设置希望它们在数据集中显示的顺序。

\r<response>\r<name_detail>\r<name>Oľga</name>\r<gender>f</gender>

这适用于一个简单的情况,但如果有更多的变量而不仅仅是市场,教会和医院,你可能会对使用宏和%do循环迭代一个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/