全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6037 21
2011-09-08
悬赏 10 个论坛币 已解决
请教达人:
       已经有多个数据结构一样的数据集,并且数据集名称都是“com”开头的,比如数据集名称分别为comzhangsan,comlisi,comzhaowu;想把这3个数据集合并成一个数据集并在各个数据集后面增加一列和数据集名称一样的字段以便区分,如comzhangsan里面增加一列type都等于"comzhangsan",comlisi里增加一列type都等于“comlisi”等,
       由于数据集较多,想弄个程序实现一下,该怎么写呢?如果不是com开头没有规律又该咋写呢?谢谢大家啦

最佳答案

yzzhang 查看完整内容

libname a 'd:\'; data a.m; x=1; run; data a.n; x=1; run; %macro ds_union(libnm); proc sql; create table dict_dsnm(where=(libnm=upcase("&libnm."))) as select distinct memname as dsnm, libname as libnm from dictionary.members where memtype='DATA'; select count(distinct dsnm) into :ds_n from dict_dsnm; quit; %do i=1 %to &ds_n.; data dsnm; set dict_dsnm; ...
二维码

扫码加我 拉你入群

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

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

全部回复
2011-9-8 14:41:17
libname a 'd:\';
data a.m;
        x=1;
        run;
data a.n;
        x=1;
        run;


%macro ds_union(libnm);
proc sql;
        create table dict_dsnm(where=(libnm=upcase("&libnm."))) as select distinct
                memname as dsnm, libname as libnm
        from dictionary.members        where memtype='DATA';
        select count(distinct dsnm) into :ds_n from dict_dsnm;
        quit;
%do i=1 %to &ds_n.;
    data dsnm;
        set dict_dsnm;
        if _N_=&i.;
        call symput('dsnm',dsnm);
        run;
    data ds;
        set &libnm..&dsnm;
        length type $50;
        type='&dsnm.';
        run;

    data dsnm;
        set &libnm..&dsnm.;
        length type $50;
        type="&dsnm.";
        run;
        proc append base=ds_union data=dsnm force; quit;
%end;
%mend ds_union;

%ds_union(a);
二维码

扫码加我 拉你入群

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

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

2011-9-8 15:11:11
试一试set,利用指示变量新建type变量
二维码

扫码加我 拉你入群

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

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

2011-9-8 15:15:51
楼上的能说的具体点么?俺是菜鸟弄不懂啊
二维码

扫码加我 拉你入群

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

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

2011-9-8 15:32:09
试一下用这个宏参数,
看能不能实现
复制代码
二维码

扫码加我 拉你入群

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

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

2011-9-8 15:44:50
priss111 发表于 2011-9-8 15:32
试一下用这个宏参数,
看能不能实现
谢谢你,提供了一个较好地解决方案
只是如果不是3个数据集,而是10个的话,感觉就要执行10个宏。
就没有什么函数或者什么方法的获取数据集名称么
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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