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的条件才继续循环,如果不满足则终止循环。
相关文章:
2024-07-05 base SAS programming学习笔记9(variables)
1.在数据集增加累加变量值(SUM) 求和语句(SUM STATEMENT):variableexpression variable是累积求和的变量名,为数值型,默认初始值为0;该variable值则会保留到一个观测 当expression有缺失值,在求…...
kafka--发布-订阅消息系统
1. Kafka概述 1. kafka是什么 kafka是分布式的、高并发的、基于发布/订阅模式的消息队列软件系统。 kafka中的重要组件 Producer:消息生产者,发布消息到Kafka集群的终端或服务Consume:消费者,从Kafka集群中消费消息的终端或服…...
2024最新软件测试面试题。内附答案+文档
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、你以前工作时的测试流程是什么? 参考答案:(灵活回答&…...
新加坡很火的slots游戏代投Facebook广告新流量趋势
新加坡很火的slots游戏代投Facebook广告新流量趋势 在新加坡这片充满活力的土地上,Slots游戏以其独特的魅力和吸引力,迅速成为了许多玩家的心头好。而Facebook,作为全球最大的社交媒体平台之一,为Slots游戏的推广提供了得天独厚的…...
C++ 实现字符串逆序
C 实现字符串逆序 思路: 输入一个字符串。使用双指针法,交换字符串的首尾字符,逐步向中间移动。输出逆序后的字符串。 #include <iostream> #include <string>using namespace std;void reverseString(string &str) {int …...
【项目实践】贪吃蛇
一、游戏效果展示二、博客目标三、使用到的知识四、Win32 API 介绍 4.1 WIn32 API4.2 控制台程序4.3 控制屏幕上的坐标COORD4.4 GetStdHandle4.5 GetConsoleCursorInfo 4.5.1 CONSOLE_CURSOR_INFO 4.6 SetConsoleCursorInfo4.7 SetConsoleCursorPosition4.8 GetAsyncKeyState 五…...
将exe文件添加到注册表中,实现开机时自动运行
目录 一、前言 二、代码 三、使用步骤 1.编译生成exe文件、 2.以管理员身份运行代码 3.打开注册表,验证结果 一、前言 在Windows操作系统中,将exe文件的路径添加到注册表下,主要用于实现程序的开机自动运行功能。 注册表路径为…...
SQL使用注意事项
作为开发人员日常最为熟悉的工具sql。但是在实际使用中,有一些坑需要尽量避免,本文是对一些常用注意事项的总结 查询需要的。不要全部都查询。禁止使用存储过程,禁止使用外键。使用sql进行计算,要小心。(数据量大的情况…...
uniapp小程序IOS端,uni.createInnerAudioContext()无声音
可能的问题 路径中有中文字符需要使用uni.getBackgroundAudioManager()播放其他问题 解决办法 首先我的路径中没有中文字符,如果有的,可能需要转义一下或者干脆不使用中文字符,第二个也是从其他博客中看到的,我这边分享一下我的…...
第二节-K8s词汇表
关键字词汇表 https://kubernetes.io/zh-cn/docs/reference/glossary/?fundamentaltrue API Group (API 组)Kubernetes API 中的一组相关路径。 API 服务器亦称作:kube-apiserver API 服务器是 Kubernetes 控制平面的组件, 该组件负责公开了 Kubernetes API&…...
命令行运行git reflog(reference log)报错的解决办法
文章目录 1. 检查 Git 是否已安装2. 检查 PATH 环境变量3. 重新安装 Git 在Git中, reflog的英文全称是 “ reference log”。意思是 引用日志(参考日志)。它记录了本地仓库中HEAD和分支引用所指向的提交的变更历史。这包括了你所有的提交&…...
python3 imwrite 中文路径不成功解决方法
filename 中文路径 #cv2.imwrite(filename, frame) cv2.imencode(.jpg, frame)[1].tofile(filename)...
tapd 与国内外主流的8大项目管理软件大对比
对比Tapd与8大项目管理工具:PingCode、Worktile、Redmine、Teambition、广联达、Jira、禅道、飞书。 Tapd 是腾讯推出的一款敏捷开发管理工具,特别适合那些需要高效协作和快速迭代的敏捷开发团队。它支持多种敏捷方法论,包括Scrum和Kanban&am…...
IP地址配置
1.为虚拟机配置IP地址,网关,DNS 例如:手动给虚拟机配置IP地址为 192.168.5.50/24;网关地址为:192.168.5.2;DNS地址为:192.168.5.2 解题步骤如下: #配置IP地址 [rootlocalhost ~]#…...
【C#】ProgressBar进度条异步编程思想
1.控件介绍 进度条通常用于显示代码的执行进程进度,在一些复杂功能交互体验时告知用户进程还在继续。 在属性栏中,有三个值常用: Value表示当前值,Minimum表示进度条范围下限,Maximum表示进度条范围上限。 2.简单实…...
深入浅出3D感知中的优化与基于学习的技术1(原创系列)
近期几乎看了所有有关NERF技术论文,本身我研究的领域不在深度学习技术方向,是传统的机器人控制和感知。所以总结了下这部分基于学习的感知技术,会写一个新的系列教程讲解这部分三维感知技术的发展到最新的技术细节,并支持自己最近…...
【CentOS 7 上安装 Oracle JDK 8u333】
文章目录 下载 Oracle JDK 8u333:上传 RPM 包到服务器安装 Oracle JDK设置 JAVA_HOME 环境变量验证 下载 Oracle JDK 8u333 访问 https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 找到 JDK 8u333 版本,并下载适用于 L…...
Nginx 常用配置与应用
Nginx 常用配置与应用 官网地址:https://nginx.org/en/docs/ 目录 Nginx 常用配置与应用 Nginx总架构 正向代理 反向代理 Nginx 基本配置反向代理案例 负载均衡 Nginx总架构 进程模型 正向代理 反向代理 Nginx 基本配置反向代理案例 负载均衡 Nginx 基本配置…...
基于Springboot的智慧养老中心管理系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于Springboot的智慧养老中心管理系统,…...
数据结构笔记第3篇:双向链表
1、双向链表的结构 注意:这里的 "带头" 跟前面我们说的 "头结点" 是两个概念,实际前面的在单链表阶段称呼不严谨,但是为了同学们更好的理解就直接称为单链表的头结点。 带头链表里的头结点,实际为 "哨兵…...
AIVideo效果震撼:输入‘量子计算科普’生成带3D动画与专家语音的12分钟视频
AIVideo效果震撼:输入‘量子计算科普’生成带3D动画与专家语音的12分钟视频 只需输入一个主题词,就能自动生成包含专业分镜、精美画面、专家级配音的完整长视频——AIVideo让视频创作变得如此简单。 1. AIVideo:一站式AI视频创作革命 当我第…...
PvZ Toolkit:植物大战僵尸游戏体验增强工具全解析
PvZ Toolkit:植物大战僵尸游戏体验增强工具全解析 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 问题引入:植物大战僵尸玩家的共同痛点 在植物大战僵尸游戏过程中…...
构建学术文献自由:caj2pdf开源转换工具深度解析
构建学术文献自由:caj2pdf开源转换工具深度解析 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换,成功与否,皆是玄学。 项目地址: https://gitcode.com/gh_mirro…...
跨境电商注销店铺能规避美国TRO吗?
SellerAegis卖家守护视角下的“弃店思维”与真实法律后果解析在跨境电商卖家遭遇美国TRO(Temporary Restraining Order,临时限制令)后,最常见的一种想法就是:如果把店铺注销,是不是就可以规避风险ÿ…...
别只写对话了!Ren‘Py高级玩家都在用的5个隐藏技巧:转场、音效、变量与存档
别只写对话了!RenPy高级玩家都在用的5个隐藏技巧:转场、音效、变量与存档 当你已经能够用RenPy制作基础视觉小说时,是否发现自己的作品总像"电子版小说"?真正的商业级作品会通过动态转场、环境音效、分支剧情等设计让玩…...
Anthropic在非高峰时段将Claude使用量翻倍但不会永久持续
AI实验室持续寻找方式将开发者更深入地吸引到其生态系统中。最新举措来自Anthropic公司,该公司表示将在非高峰时段将其Claude助手的使用限制翻倍——这一短期优惠或许更多地反映了对开发者关注度的竞争,而非单纯的慷慨。Anthropic表示此次促销活动为期两…...
Python实战:出租车计费模拟器开发(附完整代码与测试用例)
Python实战:出租车计费模拟器开发(附完整代码与测试用例) 出租车计费系统是城市交通中不可或缺的一部分,而用Python模拟这一过程不仅能帮助初学者理解条件分支和输入输出处理,还能培养将现实问题转化为代码的思维能力。…...
矩阵按键扫描技术对比:行列扫描与反转扫描的实战解析
1. 矩阵按键扫描技术入门指南 第一次接触矩阵按键时,我完全被那些交叉的行列线搞晕了。直到在某个深夜调试项目时,才突然理解了这个设计的精妙之处——它就像城市道路的十字路口,通过行列坐标就能精准定位每个按键位置。这种设计让16个按键只…...
KMS_VL_ALL_AIO:智能激活脚本的高效办公解决方案
KMS_VL_ALL_AIO:智能激活脚本的高效办公解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在数字化办公环境中,Windows系统和Office办公套件的激活管理常常成为用户…...
化工模拟老司机的原油蒸馏骚操作
Aspen 化工过程模拟虚拟组分蒸馏原油 本可模型 在本模型中,将使用pseudocomponents进行原油蒸馏。 将创建一个由常压蒸馏塔和真空蒸馏塔组成的模型。 常压蒸馏塔将使用 Chao-Seader 热力学模型建模,而真空蒸馏塔将使用 Braun K10 模型建模。在Aspen里折腾…...
