当前位置: 首页 > news >正文

2024-07-05 base SAS programming学习笔记9(variables)

1.在数据集增加累加变量值(SUM)

        求和语句(SUM STATEMENT):variable+expression

        variable是累积求和的变量名,为数值型,默认初始值为0;该variable值则会保留到一个观测

        当expression有缺失值,在求和语句中会将该缺失视为0;

举例如下:

SumSec的执行过程如下:初始为0,每读入一行数据在加上该新的变量值,所得累加值放入SumSec并保留到下一行数据。

2.在数据集增加累加变量值(RETAIN)

        保留语句:RETAIN variable initial-value 

        RETAIN语句可以实现如下两个功能:1)给retain 的变量名赋予一个初值;2)避免使变量名在program vector data(数据向量)里面被清空;3)如果initial value缺失赋值缺失;4)对SET、MERGE、UPDATE语句读入进来的变量无用,仅对在编译时设置的新变量管用

3.IF-THEN语句

        有条件给变量赋值,可用的比较或逻辑符号如下:

not 语句使用举例如下:

数值为0或缺失默认为FALSE,其余情况非零或非缺失值则默认为TRUE

如IF x=1 or 2则必为TRUE,因为2是表示TRUE;

IF X=1 OR X=2 则不一定为TRUE,因为有可能2个条件都不满足

由于SAS 每次都会执行IF THEN 语句,因此在对同一个变量进行操作时使用IF THEN ELSE IF THEN 语句来提高效率,避免重复使用IF-THEN 语句,在碰到TRUE的情况则会跳出该IF 语句。

如下所示:

可以使用IF THEN  DELETE 来删除对应的行。括号内的逻辑判断比括号外的逻辑判断先执行

4.给变量设置长度

        如果不设值长度SAS会默认遇到的第一个值的长度为该变量名的长度,有可能导致结果显示不全,因此使用:

        length  variable  ($)  n;

        $在字符变量时使用,n是设置长度的整数

5.DROP 和KEEP 语句

        drop 和keep 语句与drop和keep  选项的不同:

        1)  drop 和keep 语句只能在data语句中使用不能在proc 步使用,

        2)对输出的所有数据集都有效

6. SELECT 语句

        语句格式如下:

                SELECT <(select-expression,非必要选项,与下面的条件进行比较的变量或表达式)>

                        WHEN -1(expression-1,....expression-n 条件语句)  statement 执行语句;

                        ......

                        WHEN -n(expression-1,....expression-n)  statement;

                        <OTHERWISE STATEMENT 当没有WHEN 条件被满足时执行该语句>

                END;

值得注意的是:

如果存在select-expression 则会判断select expression 和when expression 里面的值是否相等,如果相等则为TRUE往后执行statement;如果不相等为FALSE。

如果所有的when 语句都判断为FALSE而无OTHERSWISE 语句则会报错,停止执行DATA 步;

如果不存在select expression ,则会对每个when 语句判断TRUE或FALSE,SAS只会执行首次判断为TRUE的语句,一旦存在TRUE语句则跳出不对其他WHEN语句进行判断。

举例如下:(选择变量a的值,等于1 时x*10,等于3,4,5时x*100,其余情况x不变)

7.DO END ;

        常与IF THEN /ELSE语句或者SELECT 语句连用,来同时执行多个statement.

       举例如下:

DO END 可以支持嵌套,嵌套的层数取决于电脑内存,DO END 还可以用于循环;

DO UNTIL CONDITION ;

        ......

 END;

在每次DO循环过后来检查示是否满足UNTIL 的条件,如果满足则终止循环

DO WHILE CONDITION ;

        ......

 END;

在每次DO循环前检查是否满足WHILE的条件,只有满足WHILE的条件才继续循环,如果不满足则终止循环。

http://www.lryc.cn/news/392027.html

相关文章:

  • kafka--发布-订阅消息系统
  • 2024最新软件测试面试题。内附答案+文档
  • 新加坡很火的slots游戏代投Facebook广告新流量趋势
  • C++ 实现字符串逆序
  • 【项目实践】贪吃蛇
  • 将exe文件添加到注册表中,实现开机时自动运行
  • SQL使用注意事项
  • uniapp小程序IOS端,uni.createInnerAudioContext()无声音
  • 第二节-K8s词汇表
  • 命令行运行git reflog(reference log)报错的解决办法
  • python3 imwrite 中文路径不成功解决方法
  • tapd 与国内外主流的8大项目管理软件大对比
  • IP地址配置
  • 【C#】ProgressBar进度条异步编程思想
  • 深入浅出3D感知中的优化与基于学习的技术1(原创系列)
  • 【CentOS 7 上安装 Oracle JDK 8u333】
  • Nginx 常用配置与应用
  • 基于Springboot的智慧养老中心管理系统
  • 数据结构笔记第3篇:双向链表
  • 详细对比Java SPI、Spring SPI 和 Dubbo SPI
  • CPU的核心数和线程数
  • 电脑游戏录屏,3款实用软件推荐给你
  • C#桌面应用开发:番茄定时器
  • PHP智慧门店微信小程序系统源码
  • SerDes介绍以及原语使用介绍(2)OSERDESE2原语仿真
  • 【稳定检索/投稿优惠】2024年教育、人文发展与艺术国际会议(EHDA 2024)
  • Docker拉取失败,利用 Git将 Docker镜像重新打 Tag 推送到阿里云等其他公有云镜像仓库里
  • 【区分vue2和vue3下的element UI Breadcrumb 面包屑组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • gdb调试命令大全
  • ESP32之arduino环境安装及点灯