zoukankan      html  css  js  c++  java
  • SAS学习笔记10 宏变量

    1. 一个宏变量存放的值保持不变直到被修改(全局变量
    2. 引用时,变量名前加上"&"
    3. 宏变量在引用时放在双引号之间会被解读(单引号不会被解读)

    用户定义的宏变量,有三种方式:

    1. %let 宏变量名=宏变量值(宏变量值最大可存储65535个字符)
    2. call symput(宏变量名,值);(这个方法只允许在data步中)
    3. proc sql

    宏变量的引用

     显示宏变量及其值

    • _GLOBAL_ :输出用户自定义的宏变量当中的全局宏变量信息;

    • _LOCAL_ :输出用户自定义的宏变量当中的局部宏变量信息;(一般用在宏内部,因为只有在宏内部才有局部的概念)

    • _READONLY_ :输出用户自定义的宏变量中只读的宏变量信息,包括全局和局部的;

    • _WRITABLE_:输出用户自定义的宏变量中可写的宏变量信息,包括全局和局部的;

    宏变量与后续文本的分隔

     当宏变量跟后续文本紧密同时使用时,需要界定宏变量的结束位置

    间接引用宏变量

    “&宏变量名”是直接引用

    如果引用的宏变量名是通过宏产生的,则需要间接引用,此时需要用:&&

    DATA STEP

    如果要在DATA STEP执行阶段创建Macro Variable,就要使用执行阶段生效的语句。在DATA STEP中可通过CALL SYMPUT来完成

    CALL SYMPUT( macro-variable, value );
    
    • macro-varialbe为Macro Variable的名字,可以为引号引起来的字符串,也可以为DATA STEP中的字符变量;

    • value为Macro Variable的取值,可以为引号引起来的字符串;也可以为DATA STEP中的变量(如果是数值变量,SAS会进行一次自动转换,将其转换为字符串后赋给Macro Variable)

    此外,还有另外一个CALL SYMPUTX也是用来在DATA STEP中创建Macro Variable。它与CALL SYMPUT的用法一模一样,只有一个区别:

    CALL SYMPUTX在给Macro Variable赋值的时候会移除Leading blanks和Trailing blanks

    注意:%put语句在输出时会移除输出内容的Leading blanks和Trailing blanks

     PROC SQL

     SQL相比DATA步可以很快速的完成一些聚合运算。这些运算后的结果如果想要输出到Macro Variable中,就需要用INTO子句来完成。其语法格式如下:

    INTO :macro-variable-specification-1 <, :macro-variable-specification-2 ...>

    特别注意,INTO子句中需要在每个创建的Macro Variable前加“:”

    除了上面这种赋单值外,还可以赋多个值给某个Macro Variable,并且以指定的分隔符进行区分。例如:

    %SYMDEL STATEMENT

    当某个Macro Variable不再使用的时候,可以通过%symdel语句来删除

  • 相关阅读:
    MVAPICH
    sql server触发器的例子
    Sql Server 判断表或数据库是否存在
    JS验证用户真实姓名
    js实现瀑布流的一种简单方法实例分享
    C#实现登录窗口(不用隐藏)
    判断滚动条到底部的JS代码
    php 中文字符串首字母的获取函数
    C#获取当前页面的URL
    C#动态生成图书信息XML文件
  • 原文地址:https://www.cnblogs.com/abble/p/10972966.html
Copyright © 2011-2022 走看看