原始数据original data
期望结果expected result
楼主试验用Excel 里的array 来解决以下问题, 但是实施起来特别麻烦,因为要paste array 公式好几十次。 比如说这是北美的邮政编码数据。我想要从中筛选Texas州的部分城市的所有邮政编码zip code。 但是我只要部分城市的所有邮政编码的数据。这些邮政编码要单独列出像这个筛选后的表格一样。我把texas州的所有zip codes 单独列到一个原始数据的tab里叫zip codes。因为我不会用那个原始数据里的zip codes, 因为那个不一定全面,就把这个单独的zip codes tab 当做是全面的Texas zip code表格吧, 为了显示不同,我只是把原有的texas的所有zip codes 都加了一,然后另存到一个tab里,为了看sas筛选后的效果。
现在需要把这些数据分别在sas里建立原始数据 。比如original_data.sas(这个太大只建立就好,不用打开,最好能用sql建立), 我已经在Excel里筛选到texas州的数据了,为了以后更新方便,还是去掉筛选,把所有的原始数据输入到SAS里, 然后用where 语句提取texas或者是任何一个州的相关数据, 要变量城市primary city, 看原始数据C列,县county,看原始数据 G 列, 注意不能用 A 列的zip,而是用另一个单独的zip code tab里的zip codes 数据(这个是规定使用的zip code 资源,所以要单独放到一个sas 数据里,然后再用data step加到输入到sas 里的原始数据中。 那个州的变量是state 看原始数据F列,texas的代号是TX。
提取texas的数据后,要从所有城市里提取所需要的部分城市的数据。这个恐怕paste不容易因为每个城市都要单独在SAS里加引号。我当初是把所有城市先弄个pivot table 然后再把部分需要的城市paste 到旁边,在Excel 里筛选的zip codes。 但是太耗时间了。
SAS产生的结果我也要它列成这个附件里的格式 sas里用proc contents 应该可以解决名字问题,所以在输入数据到sas时可以把 H 列以前的pivot table 和city列都删除。 从H列开始是所需的部分城市。把它们每个城市所对应的所有zip codes从原始数据里找出来,并帖到城市所在名的下边排成一列一列的。这H-J列的zip codes只是个例子不是筛选出来的,所以用SAS arrary用原始数据里先筛选出部分所需城市,然后再从另一个单独的zip code tab 里筛选出所对应的每个所需城市的所有zip codes。
先把上边的问题解决,下边的能解决更好。金币不是问题。解答最详细的且能正确操作产生所需结果的版友将获得最终奖励。
我还要county 这个可以在Excel 里实现,但是要能一块用sas做了最好。 举个例子。以下三个县county是从德州的原始数据里提取的。现在我要把每个county里面所有的城市和每个城。 市的zip codes都找出来也和上边城市列zip codes的格式一样,把每个county的所有zip codes做成一列一列的。
Dallas County |
Denton County |
Collin County |
SAS 要能把county 筛选成下边这个形式就足够好了, 我可以在Excel里进行近一步有针对性的筛选。
Dallas County |
city1 | 73256 |
city2 | 73156 |
city3 | 73542 |
city3 | 75251 |
city1 | 72291 |
city2 | 72952 |
city2 | 724928 |
注解:
这个资料里所用的邮政编码和我所用的另一个资源(特别大)里的邮政编码是不同的,所以我才另外建立了一个tab 叫zip code 把Texas的所有zip code作为一个例子放在这个tab里。为了和原始数据里的zip code 区分我就把这个tab里的zip code 都在原始zip code的基础上加了一。 你在原始数据的Excel里的第二个tab 里一查就可以看出来。
我想看的是SAS array 筛选过程,现在把数据上传到原帖中了。
要不然在Excel里一个个筛选在排成我在expected result H 列以后 的那种格式太麻烦了。比如让你做几百次。所以用SAS array应该可以产生一个整个 的output table 就像我描述的expect result一样。
我只是用sas做部分分析,剩下的要在excel里做。 如果能直接提取我早就弄了,但是我用的zip code 是另一个资源里的特别大,和帖子里的原始数据类似,但略有不同。
但我要的结果是只能拿原始数据里的城市,去搜集另一个数据里的zip codes然后划分到每个所需的城市里。因为另一个资源里的城市数据出错了,但是zip codes是对的。但我只能用另一个资源里的zip codes, 这是规则。 听起来很麻烦,所以要求大神帮忙。