全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
595 14
2015-01-21
悬赏 300 个论坛币 已解决
原始数据original data  
Original Data.xls
大小:(8.74 MB)

 马上下载




期望结果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, 这是规则。 听起来很麻烦,所以要求大神帮忙。 

最佳答案

yongyitian 查看完整内容

下面程序用到的数据都是由original_data得到的。 数据中有两个字的城市名,不能作变量名,所以用了label来显示。 最后一段程序用到了array。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-21 10:34:13
下面程序用到的数据都是由original_data得到的。

数据中有两个字的城市名,不能作变量名,所以用了label来显示。
最后一段程序用到了array。

复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-21 10:39:00
复制代码

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-21 10:40:48
sushe1527 发表于 2015-1-21 10:39
这是个实际问题。需要好好想想,我想用array解决但用的不熟练,做不出想要的结果。 excel里我会,但是太慢了。 数据上传出现问题要等一下。 
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-21 10:43:55
还有,就本例来说 这个城市和邮编的对应关系
我想,某些网站上应该有整理好的,提取出来就行了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-21 10:52:36
sushe1527 发表于 2015-1-21 10:43
还有,就本例来说 这个城市和邮编的对应关系
我想,某些网站上应该有整理好的,提取出来就行了
这个资料里所用的邮政编码和我所用的另一个资料里的邮政编码是不同的,所以我才另外建立了一个tab 叫zip code 把Texas的所有zip code作为一个例子放在这个tab里。为了和原始数据里的zip code 区分我就把这个tab里的zip code 都在原始zip code的基础上加了一。 你在Excel里一查就可以。 
我想看的是SAS array 筛选过程,现在把数据上传到原帖中了。 

要不然在Excel里一个个筛选在排成我在expected result H 列以后 的那种格式太麻烦了。比如让你做几百次。所以用SAS array应该可以产生一个整个 的output table 就像我描述的expect result一样。 

我只是用sas做部分分析,剩下的要在excel里做。 如果能直接提取我早就弄了,但是我用的zip code 是另一个资源里的特别大,和帖子里的原始数据类似,但略有不同。 

但我要的结果是只能拿原始数据里的城市,去搜集另一个数据里的zip codes然后划分到每个所需的城市里。因为另一个资源里的城市数据出错了,但是zip codes是对的。但我只能用另一个资源里的zip codes, 这是规则。 听起来很麻烦,所以要求大神帮忙。 
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群