SAS初学者笔记---001

  • sas界面介绍
    • 001 顶部菜单栏
    • 002 results与explorer
    • 003 主窗口部分
  • sas代码执行规则
    • 关于SAS程序执行的步骤
    • 代码格式

这是一篇关于SAS入门学习的笔记,本文参考内容多为本校老师上课的PPT以及官方文档,且鉴于作者水平有限,希望读者谨慎借鉴。

sas界面介绍


如图所示,界面主要由红色箭头所指内容构成,接下来将简要介绍其中的内容。

001 顶部菜单栏

这一部分主要是对SAS软件本身(如代码格式,文件读取,窗口化视图等)进行基础的设置。作者个人已经安装好了增强版编辑器,此处便链接几个关于增强编辑器安装的博客
文刀煮月-SAS9.2的增强编辑器注册解决方案
SAS官方对于Enhance editor的使用介绍–基于SAS9.4
关于顶部菜单栏,此处作者简要介绍一下个人较为常用的几个操作。

  1. 文件保存、读取、录入文件等。

  • 1号区域与二号部分的功能相同,皆为新建一个程序窗口,需要注意的是当光标定位在编辑器窗口时1与2 会合并在一起
  • 3号区域是保存
  • 四号区域是导入外部数据,这一部分在关于数据集建立时再详细介绍
  • 5号区域是打开最近的文件
  1. 窗口格式设置


    如图所示即为更改窗口格式的操作

002 results与explorer

  1. results窗口是诸多输出结果的集合,在这里面你能够找到从软件打开到现在所有执行过输出的程序结果,其中结果包括web形式输出到results窗口里的数据集以及输出到output窗口的数据集
  2. explorer窗口是SAS软件的数据管理窗口,
    其中Liabraies是SAS存放逻辑库的库,其中存放了包括SAS本身建立的默认逻辑库以及个人建立的逻辑库,逻辑库中存放着数据集。
    File Shortcuts不太懂,从来没用过。
    Favorites Folder此电脑均用于管理本地数据。可以直接调用相关应用打开里面的文件

003 主窗口部分

  • Program Editor 窗口,用以编写SAS程序代码
  • Outputresults窗口,用以显示print指令或其他数据步的结果,其中results窗口所输出的内容是由SAS编译的html文件,配合ODS系统,可以将输出结果用浏览器打开,关于ODS的用法,后续内容会提到(大概)
  • Log窗口,LOG窗口包含SAS日志,它是当前SAS会话的记录。一个典型的记录显示:在当前会话中发布的SAS语句;注释、警告和出错信

    如图所示,黑色部分为Editor窗口执行的代码,红色提示出现错误,蓝色提示正常,绿色提示警告信息,具体信息以提示内容为准

sas代码执行规则

Data  a;
Input  x @@;
no = _n_;
z=x+3;
DO n  = 1 TO 4;
OUTPUT;
END;
Cards;
6  4  8
;
Run;
proc print;
run;

如上所示代码
首先明确代码分为三部分
第一部分是数据步的指令代码

Data  a;
Input  x @@;
no = _n_;
z=x+3;
DO n  = 1 TO 4;
OUTPUT;
END;

此部分代码是控制数据步生成数据的重要指令,包括从cards中读取代码、执行循环、赋值变量等。

第二部分是数据步的中的数据部分

cards;
6  4  8
;
run ; /*作为数据步的结尾运行指令*/

程序执行时,数据步中的input指令将从此处读取数据
第三部分是过程步的print指令

proc print;
run;

平平无奇的打印代码,将代码输出至result窗口以及output窗口

关于SAS程序执行的步骤

程序从代码顶端开始执行各项指令

  1. Data指令提示程序这是一个数据步,程序创造三个项目,分别是:

    • input buffer 数据的存储缓冲区域,如果代码中有input语句,此区域内将会存入cards内的数据
    • pdv(program data vector) 程序逻辑区域
    • descriptor information 数据集属性和变量属性的描述信息
  2. input指令提示读取input buffer中的数据,一次只读取一行cards数据。
  3. 按顺序读取其他指令,如演示代码中,代码进入循环步骤,此时程序将执行循环后再继续执行,循环内有赋值语句,添加output语句,使其在每次执行循环后将变量值输出到数据集中,直到遇到end,循环结束,执行下面步骤


    可以看到,output的添加使得循环赋值的n每次都被输出到数据集中,否则n的值会被后一次循环的结果所覆盖,直到最后一次执行循环。
  4. 程序执行到cards语句时,程序返回最开始重复以上步骤,重复时遇到input语句将会换行至下一行进行读取,此处添加了标志符号 @ ,所以在程序返回开始执行下一次的input命令时不换行。

代码格式

  1. 书写格式
    SAS语句可以从一行上的任意位置开始;几个SAS语句可以写在同一行上;一个语句也可以写成几行,只要语句中的单词不被断开即可;
    在一条语句中各项之间至少要有一个空格;
    SAS对大小写不敏感。即SAS语句用大写字母、小写字母或大、小写混合书写均可。
    注意:字符串及字符变量的取值要区分大小写

  2. 注释
    SAS语句中有一个注释语句,形式为:
    /*注释内容*/
    使用快捷键为 ctrl + /
    撤销注释的快捷键为 ctrl + shift + /

/*打印数据*/
Proc print data=a;
Run;

内容还有很多没有涉及到,剩下的作者将会一一补充完整、

SAS初学者笔记---001相关推荐

  1. SAS初学者笔记---003---利用数据步读取数据--逻辑库

    003---利用数据步读取数据--逻辑库/变量输出与删除 创建逻辑库 创建逻辑库 在逻辑库中建立\调用数据集 建立数据集 调用逻辑库中的数据集 还是接之前的文章,现在继续介绍关于使用SET语句读取sa ...

  2. 【经典】吴恩达——机器学习笔记001

    [经典]吴恩达--机器学习笔记001 机器学习(Machine Learning)笔记001 学习地址:[中英字幕]吴恩达机器学习系列课程 文字版参考及PPT来源:Coursera-ML-Andrew ...

  3. SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...

  4. Disruptor本地线程队列_实现线程间通信---线程间通信工作笔记001

    Disruptor本地线程队列_实现线程间通信---线程间通信工作笔记001 看到同事用这个东西了,这个挺好用的说是,可以实现,本地线程间的通信,好像在c++和java中都可以用 现在没时间研究啊,暂 ...

  5. SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理...

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...

  6. SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(2)数据获取与数据集操作 1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序, 2. BY语句,DATA步中,BY语句规定 ...

  7. 小啊呜产品读书笔记001:《邱岳的产品手记-05》第9讲 产品案例分析:Hopper的“人工智能” 第10讲 产品被抄袭了怎么办?

    小啊呜产品读书笔记001:<邱岳的产品手记-05>第9讲 产品案例分析:Hopper的"人工智能" & 第10讲 产品被抄袭了怎么办? 一.今日阅读计划 二.泛 ...

  8. 小啊呜产品读书笔记001:《邱岳的产品手记-07》第13讲 无用却必要:产品规划【上】 第14讲 留白与节奏:产品规划【下】

    小啊呜产品读书笔记001:<邱岳的产品手记-07>第13讲 无用却必要:产品规划[上] & 第14讲 留白与节奏:产品规划[下] 一.今日阅读计划 二.泛读&知识摘录 1. ...

  9. 自动驾驶技术——初学者笔记1:自动驾驶分级

    自动驾驶技术--初学者笔记1:自动驾驶分级 最近正在研读工信出版社的<第一本无人驾驶技术书>,这里做一下笔记,这一章作为写博客的测试篇章. 自动驾驶技术的分级. 分级又两种:美国公路交通安 ...

最新文章

  1. 再见中台,你好!企业数字化转型
  2. 防止Excel导入超大带格式文本乱码的方法
  3. mysql 查询多边形_mysql中判断一个点是否在多边形中
  4. 编程之美-电梯调度算法方法整理
  5. java银行叫号模拟系统_Java 模拟银行叫号机
  6. 【渝粤教育】电大中专测量学 (5)作业 题库
  7. IDEA 同一个工程下不同模块之间的类相互调用
  8. maven javaProject打包发布成服务
  9. 使用UTL_SMTP包发送邮件
  10. 损失函数、tensorflow2实现——Python实战
  11. C#:获取Web.config中数据库连接地址
  12. python4.2_python4.2参数传入
  13. linux断点续传程序,Linux中实现断点续传的原理
  14. win7下配置python_win7如何配置Python环境变量
  15. 〖Python自动化办公篇⑰〗- PPT 文件自动化 - PPT 插入表格与图片
  16. 拟物化设计与扁平化设计
  17. 出现HTTPS证书错误原因
  18. HTPPS的域名部署项目请求头xx_xx问题解决
  19. php 判断字符串类型及长度
  20. Java 中怎么打印数组?

热门文章

  1. 已有一个Excel表格,用VBA批量新建文件夹
  2. Hadoop 大数据学习笔记
  3. DNS和代理服务器的介绍
  4. 高性能MySQL(第四版):一、MySQL架构
  5. 软件或开发工具读取EXCEL文件报错ACEODBC.DLL驱动加载失败解决
  6. IP-GUARD如何禁止客户端机器的截屏功能?
  7. 波形记录仪MR6000的实时波形运算功能
  8. 知识付费这么红,它会成为KFC吗?
  9. mysql8.0如何授权_MySQL8.0 创建用户及授权
  10. tongweb java_home_东方通 TongWeb安装(安装截图懒得放了)