由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - SAS里用macro的文件名里数字的问题
相关主题
batch?SAS call symput question
why this error in %if statement求助,SAS ADV 130 中94
问一个SAS macro的问题请问SAS ADV 130中74 和80题
请帮忙看3道SAS题。请教SAS adv 题库一道macro题
问个SAS题目,在线等:急问大牛帮我看看SAS macro里的问题
SAS helpSAS能不能用循环变量作为文件名(或者给文件编号)?
请问SAS advanced macro global 和localsas 代码问题
SAS ADVANCED 一道题求助SAS MACRO里的循环不work是怎么回事
相关话题的讨论汇总
话题: val话题: test话题: putn话题: mend话题: macro
进入Statistics版参与讨论
1 (共1页)
h***b
发帖数: 43
1
大家春节好啊!请教个问题,提前谢谢阿!
我有10个文件,文件名abc01,abc02,。。。,abc10代表01年到10年的10年记录,如
果我按照下面这样写, do i = 01 to 10,SAS读到的文件就成了abc1,abc2...,那个0读
不到,也就是前九个文件都无法读了。那位大侠给个code写法啊,谢谢啦!
%macro OTPT();
%do i= 01 %to 10;
data final&i;
set abc&i;
.
.
.
.
.
%end;
%mend;
%OTPT();
run;
A*****a
发帖数: 1091
2
%macro test;

%do i=1 %to 10;
%let val=%sysfunc(putn(&i,z2.));
%put &val;

%end;

%mend;

%test

【在 h***b 的大作中提到】
: 大家春节好啊!请教个问题,提前谢谢阿!
: 我有10个文件,文件名abc01,abc02,。。。,abc10代表01年到10年的10年记录,如
: 果我按照下面这样写, do i = 01 to 10,SAS读到的文件就成了abc1,abc2...,那个0读
: 不到,也就是前九个文件都无法读了。那位大侠给个code写法啊,谢谢啦!
: %macro OTPT();
: %do i= 01 %to 10;
: data final&i;
: set abc&i;
: .
: .

h***b
发帖数: 43
3
Thanks much Archaea!I tried as the following, but it still can not read the
"0". It shows file in.abc1 does not exist, and so on for other files.
%macro test;

%do i=1 %to 10;
%let val=%sysfunc(putn(&i,z2.));
%put &val;
data abc20&i.;
set in.abc&i.;
run;


%end;

%mend;

%test
c*********u
发帖数: 607
4
你前面都定义成&val了后来怎么还有&i啊?
A*****a
发帖数: 1091
5
应该用:
%macro test;

%do i=1 %to 10;
%let val=%sysfunc(putn(&i,z2.));
data abc20&val.;
set in.abc&val.;
run;

%end;

%mend;

%test

the


【在 h***b 的大作中提到】
: Thanks much Archaea!I tried as the following, but it still can not read the
: "0". It shows file in.abc1 does not exist, and so on for other files.
: %macro test;
:
: %do i=1 %to 10;
: %let val=%sysfunc(putn(&i,z2.));
: %put &val;
: data abc20&i.;
: set in.abc&i.;
: run;

h***b
发帖数: 43
6
It works. Thanks Archaea!
N***3
发帖数: 801
7
如果做时间序列可以这样写
%macro loop;
%do i=1 %to 20;
data _null_;
monyy=intnx('month','01dec1999'd,&i);
call symput('yymm',put(monyy,yymmn4.));
run;
proc sql;
create table a_&&yymm as
select put(&&yymm,z4.) as yymm, * from sashelp.cars;
quit;
proc append base=master data=a_&&yymm;
run;
%end;
%mend;
%loop;
1 (共1页)
进入Statistics版参与讨论
相关主题
SAS MACRO里的循环不work是怎么回事问个SAS题目,
need sas debug help!! Please...SAS help
请教一道SAS MACRO编程的问题。怎么都不明白。谢谢请问SAS advanced macro global 和local
[合集] 一个sas问题SAS ADVANCED 一道题求助
batch?SAS call symput question
why this error in %if statement求助,SAS ADV 130 中94
问一个SAS macro的问题请问SAS ADV 130中74 和80题
请帮忙看3道SAS题。请教SAS adv 题库一道macro题
相关话题的讨论汇总
话题: val话题: test话题: putn话题: mend话题: macro