全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1753 3
2013-06-14
悬赏 100 个论坛币 已解决
请各位老师帮忙,有个问题个人觉得较困难。

问题背景:例如有个库,叫做lib,里面有20个数据集,名字各异,例如:tom,jerry,。。。,susan;这20个数据集中的变量大体相同,但也有差异。

问题:我现在想找一个变量,例如叫做:age。我该如何找呢?(请别用枚举法,或者请思考这是200个数据集)

-----------------------------------------------------------------------------------------

我的解决方法(较笨):

将每个数据集用proc contents过程做成属性数据集,例如:tom_att,jerry_att,。。。,susan_att,并将这每个属性数据集加一列自己数据集名称的变量,作为标识;然后将这些数据集进行set;最后理所应当的用where或者sql进行列表输出。

问题:

1.我希望用宏解决,可是如何将这个lib库里面的不同名称数据集全部调用呢?有无类似的自动宏变量?(已用proc datasets自行解决,谢谢。)

2.针对该问题,有无更好解决方法?

感谢感谢。

最佳答案

bobguy 查看完整内容

Here is a solution for you. The variable types should be same in all data sets. %let var=DENSITY; %let lib=MAPS; proc sql noprint; select catt(libname,'.', memname, '(keep=DENSITY)' ) into: dsnlist separated by ' ' from dictionary.columns where libname="&lib" and name="&var"; ; quit; data _null_; if &sqlobs>0 then do; call execute("data need; set &dsnlist; run;"); ...
二维码

扫码加我 拉你入群

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

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

全部回复
2013-6-14 23:35:44
Here is a solution for you. The variable types should be same in all data sets.

%let var=DENSITY;
%let lib=MAPS;

proc sql noprint;
select catt(libname,'.', memname, '(keep=DENSITY)' )
                into: dsnlist separated by ' '
from dictionary.columns
where libname="&lib" and name="&var";
;
quit;

data _null_;
  if &sqlobs>0 then do;
    call execute("data need; set &dsnlist; run;");
  end;
  else put "there is no variable &var found in library &lib";
run;
二维码

扫码加我 拉你入群

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

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

2013-6-14 23:51:28
sashelp.vcolumn or dictionary.columns has all you need
http://support.sas.com/resources ... ings10/155-2010.pdf
二维码

扫码加我 拉你入群

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

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

2013-6-15 00:07:53
邓贵大 发表于 2013-6-14 23:51
sashelp.vcolumn or dictionary.columns has all you need
http://support.sas.com/resources/papers/proc ...
Thank you. I will try the method which mentioned in the paper latter.
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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