全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3825 8
2012-07-09
哪位大侠帮帮忙啊,

我想用一个数据集中的1个变量中的值做数据名称,例如我有数据集a,四个值 a, b, c, d. 我想用这四个值作为数据集的名称,能通过Macro 实现吗?

name
a
b
c
d




二维码

扫码加我 拉你入群

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

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

全部回复
2012-7-9 15:09:36
可以,具体要求是什么?
二维码

扫码加我 拉你入群

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

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

2012-7-9 15:55:04
ziyenano 发表于 2012-7-9 15:09
可以,具体要求是什么?
a b c d 这几个数据集存在另一个文件夹中, 我想调用它们 但是不想逐一的去写调用程序,想用循环来做。我现在又1个list,其中1列就包含所有那个文件夹下的文件名称。我想通过使用这个list来实现调用。
二维码

扫码加我 拉你入群

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

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

2012-7-9 16:13:32
zhengjie198 发表于 2012-7-9 15:55
a b c d 这几个数据集存在另一个文件夹中, 我想调用它们 但是不想逐一的去写调用程序,想用循环来做。我 ...
你意思要将a,b,c,d文件分别导入到SAS里面?
二维码

扫码加我 拉你入群

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

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

2012-7-9 17:55:41
%macro b;
proc sql;
select name,count(name) into : name separated by ' ', : n  from a;     /*a为原始数据集,将name变为宏变量,观测数为n*/

%do i=1 %to &n;
%let j= %eval(&i);
%let x=%scan(&name,&j, str( ));        /*截取宏变量*/

    PROC IMPORT OUT=&x
    DATAFILE= "d:\&x..csv"  /*假设a b c 等文件为csv格式的,进行循环导入。其他格式原理一样,改下路径就ok*/
    DBMS=CSV REPLACE;
    RUN;

%end;
%mend b;
%b;



希望可以帮到你~
二维码

扫码加我 拉你入群

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

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

2012-7-9 18:10:31
可以用数组,  把列变量的每个值赋值给数组里的相应的变量,做成一个宏变量,然后引用就可以了。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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