sas中宏变量、创建方式及区别
来源:互联网 发布:防止域名劫持 编辑:程序博客网 时间:2024/05/22 05:29
/*方式一*/
%let x=5; %let y=test;
%put &x &y;/*方式二*/
data _null_; call symput('x',5);
call symput('y','test');
run;
%put &x &y;/*方式三*/ /*若有多条记录,只取第一条的值*/
proc sql noprint;
select min(weight),max(weight) into:minw,:maxw
from sashelp.class;
quit;
%put &minw &maxw;/*根据创建多个宏变量并赋值,超过记录数范围的不会创建*/
proc sql noprint;
select name, age into :name1 - :name99999999,:age1 - :age99999999 from sashelp.class;
quit;
%put &sqlobs;
%put &name1 &age1;
%put &name2 &age2;
%put &&name&sqlobs &&age&sqlobs;
%put &name100 &age100;/*这两个宏变量并没有创建,执行时会报warning*/
/*拼接字段值,赋给一个宏变量*/ proc sql noprint inobs=5; select name into:names separated by ',' from sashelp.class; quit;%put names=&names;
其三种方法的区别在于:
1. %let xxx=yyy; /*%let语句几乎可以在程序的任何位置上去定义宏变量*/
2. Call Symput('xxx','yyy'); /*只能在Date Step中定义,Call Symput在宏函数中定义的宏变量可以在函数外调用;*/
3. select xxx into: yyy. /*只能在Proc SQL中定义*/
2. Call Symput('xxx','yyy'); /*只能在Date Step中定义,Call Symput在宏函数中定义的宏变量可以在函数外调用;*/
3. select xxx into: yyy. /*只能在Proc SQL中定义*/
%let和 Select into这2种方法在MACRO函数内生成的是局部宏变量,若要想在MACRO函数外调用,需事先用%global申明变量类型。
0 0
- sas中宏变量、创建方式及区别
- SAS中变量命名规则
- JS中创建函数的三种方式及区别
- JS中创建函数的三种方式及区别
- SAS中生成哑变量的一段宏代码
- SAS中3种定义宏变量方法
- Java中String两种不同创建方式的区别及intern的用法
- SAS中nodupkey和nodup的区别
- SAS中单引号和双引号的区别
- SAS定义宏变量三种方法
- SAS定义宏变量三种方法
- Sas应用之宏变量%eval
- java 创建数组的三种方式及区别
- 线程创建的两种方式及区别
- 函数创建方式及区别,粗略总结函数原理
- objective_C中@interface和 @property 方式声明变量的区别
- php中变量的传值方式以及区别
- SAS宏技术中,%let和call symput有什么区别?
- 几种任务调度的 Java 实现方法与比较
- 探索并发编程(三)------Java存储模型和共享对象
- 阳光暖房尽显魅力 120平温馨复式
- Java中枚举及其构造函数
- springmvc学习笔记(31)——spring整合springmvc
- sas中宏变量、创建方式及区别
- 在swift如何写正则匹配
- TCP状态转换图
- C语言枚举
- Test Top
- C#之抽象类
- 一段关于Unix、Linux和Windows的暗黑史
- 网络流模版
- 美联储议息会议即将落幕 加息成关注焦点