全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1234 5
2012-10-22
name=dsn, n=1
想得到dsn1
是&name&n ,&name.&n ,&&name.&n 中哪一个呢?

还有,想生成dsn1 dsn2 dsn3 dsn4 dsn5,下面这个程序怎么出错呢?
%macro names(name= ,number= );
   %do n=1 %to &number;
      &name&n
   %end;
%mend names;
%names(name=dsn,number=5)

NOTE: 由宏变量 N 生成行。
1     dsn1
      ----
      180
ERROR 180-322: 语句无效或未按正确顺序使用。



其实上面的都是sas 9.2 macro language reference 第9页的内容。
二维码

扫码加我 拉你入群

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

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

全部回复
2012-10-22 10:25:38
The macro is a text generator. Your macro generates dsn1,...,dsn5.

When you use it, the generated codes should follow SAS syntax. Here is the correct way to use it. See below,


1    %macro names(name= ,number= );
2       %do n=1 %to &number;
3          &name&n
4       %end;
5    %mend names;
6
7    data %names(name=dsn,number=5) ;
8      x=1;
9    run;

NOTE: The data set WORK.DSN1 has 1 observations and 1 variables.
NOTE: The data set WORK.DSN2 has 1 observations and 1 variables.
NOTE: The data set WORK.DSN3 has 1 observations and 1 variables.
NOTE: The data set WORK.DSN4 has 1 observations and 1 variables.
NOTE: The data set WORK.DSN5 has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.04 seconds
      cpu time            0.01 seconds
二维码

扫码加我 拉你入群

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

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

2012-10-22 10:44:06
bobguy 发表于 2012-10-22 10:25
The macro is a text generator. Your macro generates dsn1,...,dsn5.

When you use it, the generate ...
哦,谢谢。

那第一个问题呢?
&name&n ,&name.&n ,&&name.&n这3个有区别吗

我总觉得,&name&n会被解析成&name1吗。。
二维码

扫码加我 拉你入群

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

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

2012-10-22 15:56:47
这3个木有区别
二维码

扫码加我 拉你入群

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

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

2012-10-22 15:59:17
如果是&&name&n就不同拉
二维码

扫码加我 拉你入群

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

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

2012-10-23 10:53:33
jsuper1261 发表于 2012-10-22 10:44
哦,谢谢。

那第一个问题呢?
Q: &name&n ,&name.&n ,&&name.&n这3个有区别吗?
A: In this context they are the same. ---> dsn5;

Q: 我总觉得,&name&n会被解析成&name1吗。。
A: &name&n  = resoved &name || resoved &n = dsn5
  SAS resolves process for a macro variable         &&name&n   1)  &&-->&      and &n --->5
                                                                                         2) &name5  ---> the value of macro variable of name5. If the variable is not defined, SAS macro facility will issue a warning message.


二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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