SAS学习笔记1——基础知识

  • 1.逻辑库、临时库、永久库
  • 2.数据步
    • 2.1数据步语法
    • 2.2 数据步的编译和执行过程
    • 2.3变量的选择
      • 2.3.1 keep和drop语句
    • 2.4变量的重命名rename语句
    • 2.5 观测值的选择——if和where语句
    • 2.6按变量对观测值排序
    • 2.7 建立新变量&变量的求和
      • 2.7.1 赋值语句
      • 2.7.2 累加语句
      • 2.7.3 RETAIN语句

1.逻辑库、临时库、永久库

逻辑库名是SAS名,长度不能超过8B。

建立逻辑库语句:


libname fd 'D:\大三下\SAS\lecture1';run;

fd:为自定义的逻辑库名称。

D:\大三下\SAS\lecture1’:逻辑库对应的地址。


libname fd <engine> 'D:\大三下\SAS\lecture1';run;

enging:引擎名称(缺失时为默认引擎)

临时逻辑库指的是他的内容只有在启动SAS时存在,退出SAS时内容完全被删除。系统默认的临时逻辑库为work,引用临时库的SAS文件时,可以直接使用文件名,效果等于work.文件名。

永久逻辑库是指他的内容在SAS关闭对话之后仍旧保留,直到再次修改或者删除。SAS中除了work意外的逻辑库都是永久库。

引用非临时逻辑库时必须使用两级命名方式

如:fd.test

2.数据步

2.1数据步语法

操作案例1:数据集的复制


libname fd 'c:\fd';run;data test;set fd.test;run;

2.2 数据步的编译和执行过程

对于这一段有关PDV的我理解的不是特别好,大概就是,SAS的程序在运行过程中,是一个观测一个观测进行的,对第一个观测运行一遍数据步之后,修改PDV,PDV内容写入数据集;再进行循环,对下一个观测实行上述操作,如此循环直到最后一个观测结束。

举一个例子方便理解~~

操作案例2:理解PDV编程读入变量的过程


data tes2t;put "第" _n_ "次运行之前:"_all_;set sashelp.class;htm=height*2.54/100;  /*身高转换为米*/wtkg=weight*0.454;    /*体重转换为公斤*/put "第" _n_ "次运行之后:" _all_;run;

原数据集:sashelp.class(sas内置数据集)

处理后数据集:

运行过程显示:

可以很明显地看出,sas在处理数据集时,是对于每一个观测运行一遍数据步,再循环至下一个观测。

2.3变量的选择

2.3.1 keep和drop语句

keep可以保留PDV中的变量,drop删除PDV中的变量。


keep 变量1 变量2……drop 变量1 变量2……`

keep和keep=的区别:


data test3;set sashelp.class(keep = height weight);run;

data test3;set sashelp.class;keep height weight;run;

这俩是一样的功能

在商业实践中,DROP= KEEP=的效率要高于DROP语句和KEEP语句~

操作案例4:利用keep和drop语句保留数据集全部的数值型变量或全部的字符型变量


data num;set sashelp.class(keep=_numeric_);run;data char;set sashelp.class(keep=_character_);run;

结果展示:

字符型数值型

2.4变量的重命名rename语句

(类似keep、drop)

1.rename=选项

RENAME=(旧变量1=新变量1  旧变量2=新变量2......)

2.rename语句

RENAME   旧变量1=新变量1  旧变量2=新变量2......

操作案例5:变量重命名


data class;set sashelp.class(rename=(sex=Gender));run;

2.5 观测值的选择——if和where语句

1.if语句:

用于选择部分观测值或者是用if-then语句进行赋值等操作

例:


data pilot1;set pilot;if salary>=100000;run;

等价于:


data pilot1;set pilot;if salary<100000 then delete;run;

2.where语句

1)( where = (表达式 ) )

2) where 表达式

例:


data pilot1;set pilot(where=(salary>=100000));run;

data pilot1(where=(salary>=100000));set pilot;run;

data pilot1;set pilot;where salary>=100000;run;

三种等价

2.6按变量对观测值排序

按照升序


proc sort data=sashelp.class out=class;by  age;run;

按照降序


proc sort data=sashelp.class out=class;by  descending age;run;

此处sex和age位置对调结果也不同哦


proc sort data=sashelp.class out=class;by  sex age;run;

2.7 建立新变量&变量的求和

2.7.1 赋值语句

格式:变量名=表达式;

例如:x=x+1;

注意:赋值语句在计算求和时,如果变量有缺失值,计算结果为缺失值

2.7.2 累加语句

格式:变量+表达式;

说明:变量首先初始为0,变量的值一直保留在PDV中

2.7.3 RETAIN语句

格式:RETAIN

变量列表 初始值;

说明:变量可以指定初始值,变量的值一直保留在PDV中;

注意: 行的求和以及列的求和区别

操作案例8:各种创建的变量的方法之比较

之后再写~~咕~

SAS学习笔记1——基础知识(库、PDV、变量选择、观测值排序、创建新变量相关推荐

  1. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

  2. php基础教学笔记,php学习笔记:基础知识

    php学习笔记:基础知识 2.每行结尾不允许有多余的空格 3.确保文件的命名和调用大小写一致,是由于类Unix系统上面,对大小写是敏感的 4.方法名只允许由字母组成,下划线是不允许的,首字母要小写,其 ...

  3. 【学习笔记--FMCW基础知识】

    学习笔记--FMCW基础知识 前言 mmWave测距原理 mmWave区分多个物体 mmWave的距离分辨率(Range Solution) mmWave的最大测量距离 前言 由于工作原因需要了解TI ...

  4. JS学习笔记——入门基础知识总结

    JS入门基础知识总结1 前言 基础背景知识 一.产生历史: 二.特点: 三.应用方向: 四.Javascript组成: JavaScript书写使用方式 一.行内式(了解即可,项目中不使用,日常练习尽 ...

  5. 《UNIX 环境高级编程》学习笔记——UNIX 基础知识

    UNIX环境高级编程--UNIX 基础知识 引言 UNIX 体系结构 登录 文件和目录 输入和输出 程序和进程 出错处理 用户标识 信号 时间值 系统调用和库函数 引言 所有操作系统都为它们所允许的程 ...

  6. WebGL学习笔记(基础知识篇)

    WEBGL基础知识介绍 1.场景(scene) 场景如其名,即显示3D空间内物体的容器,就好比一个箱子是一个3D场景. 2.坐标系: webgl使用笛卡尔坐标系(宽度.高度和深度),我们也可以指定使用 ...

  7. 单片机学习笔记——微机基础知识

    微机基础知识 微处理器,微机和单片机概念 微处理器的组成 一.运算器 主要寄存器 主要寄存器(IR),指令译码器(ID) 程序计数器(PC) 地址寄存器(AR) 二.控制器 存储器和输入输出接口 一. ...

  8. CAN总线学习笔记 | CAN基础知识介绍

    一.CAN协议 1.1 CAN协议简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为 ...

  9. 16位汇编语言学习笔记(1)——基础知识

    文章目录 1.配置汇编学习环境 1.1 工具下载 1.2 配置环境 2. 汇编命令基础 2.1 简单使用 2.2 常用命令 3. 汇编语言基础 3.1 汇编语言程序与汇编程序 3.2 汇编语言程序的格 ...

最新文章

  1. CentOS系统启动流程
  2. 适用于macOS的Qt
  3. 怎么在苹果Mac虚拟机上安装Win7
  4. mysql增加某人信息_mysql 增加用户
  5. python爬虫菜鸟教程-Python 应该怎么学?
  6. SLAM_BA中重投影误差e 关于相机位姿扰动量δξ 的雅克比矩阵J 公式推导
  7. hdmi接口线_HDMI高清线不能随便买,这五点要记住
  8. 查看进程的发起程序linux,Linux挂载iSCSI设备
  9. 在线将PDF极速转换为图片
  10. 只因写了一段爬虫,公司200多人被抓!
  11. 【DSU+思维】CF855G Harry Vs Voldemort
  12. java解压加密的7z格式文件
  13. 服务器输出音频文件,云服务器音频输出
  14. JAVA学习第21天; 聚合 aggregation
  15. iOS渐变视图动画库、腰杆、音频水滴水波手势、多种对话框、四级展开效果等源码
  16. 科学计算机程序 字表处理软件都是,计算机应用基础知识--1
  17. 如何在MacOS上卸载IPGuard的软件--LAgent/LSDhelper程序
  18. 【从零开始学爬虫】采集B站UP主数据
  19. 原生态水平和垂直拉伸的JQUERY插件
  20. Redis数据类型——list

热门文章

  1. Docker下gitlab搭建 实操步骤
  2. tpm2-tools源码分析之tpm2_createprimary.c(2)
  3. 新标日语初级第21课应用课文
  4. 凌晨3点不回家:成年人的世界是你想不到的心酸
  5. 【从浏览器地址栏输入 url 到请求返回的过程】——3.建立TCP 连接
  6. 单片机STM32的引脚模式设置
  7. LED发光二极管的结构组成
  8. Thread.start() ,工作这么久,还不知道它是怎么让线程跑起来的!
  9. 【心有猛虎】react-pxq
  10. mysql5.6 匿名用户登录