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

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

1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序,

2. BY语句,DATA步中,BY语句规定分组变量,用于控制SET,MERGE,UPDATE或MODIFY语句。

BY<DESCENDING>variable-1
  <...<DESCENDING>variable-n><NOTSORTED><GROUPFORMAT>;
其中:
Variable为分类、排序或索引的变量;
GROUPFORMAT为用格式化值分组;
NOTSORTED为未排序。

3. MERGE 多表的横向合并,关系为一对一,一对多,多对一。而多对多需用SQL。

    应用:1)根据某些需求条件更新特定变量2)对主数据的某些变量做历史累加

UPDATE语句后面只能跟两个数据集,最靠近UPDATE语句的是主数据集,随后是更新数据集。UPDATE在横向合并两个数据集时和MERGE相似,都是用更新数据集修改主数据集。
区别:MERGE,对更新数据集缺失值的处理,MERGE语句是不顾后果的,它会统统用远离MERGE语句数据集的数据覆盖靠近MERGE语句数据集的数据,即便是缺失值也会覆盖。
但是,有时候商业需求要求在更新数据集数据缺失的情况下用主数据集数据替代,这时候就是UPDATE语句、在使用SAS做数据仓库的ETL开发时就是如此。
MODIFY:每次更新非常庞大的数据集需要定期更新,但是每次更新对象都是动态的,可以比MERGE/UPDATE减少内存消耗。
MODIFY的四种数据集的访问机制:匹配访问、索引访问、观测访问、观测序列号访问、顺序访问。
@和@@的应用:@ 表示执行下一个操作时,指针移到下一个记录。@@表示执行下一个操作,指针保持在当前记录。
proc:过程步的开始是procedure的缩写。

4.输出观测的方法:4.1没有任何输出语句–输出PDV;4.2OUTPUT;REPLACE;REMOVE

5.put语句:可以输出变量信息到指定地点,包括:输出到SAS系统的日志窗口,输出到FILE语句规划的外部文件,输出到SAS系统的OUTPUT窗口。

        SAS系统使用PUT语句输出时,可以用指针控制,注意列指针控制的@要放在变量之前,行固定说明符的@要放在变量之后。
        PUT应用:输出结果到LOG窗口,调试程序运行过程中变量产生的中间值。输出结果到外部文件。

6.@和@@应用/单尾符和双尾符

一般单尾符应用在PUT,双尾符应用在INPUT。
单尾符:一个数据行用多个PUT语句输出数据,或多个INPUT语句输入数据。
双尾符:一个输入数据行含有多个观测的值,用INPUT语句读入,或者把多个观测输出到一个数据行,用PUT。

7.FIEL语句

FILE语句用于规定当前的输出文件,并且该文件一定是一个不同于SAS文件的外部文件。且与PUT配合使用。
INFILE语句    INFILE file-specification<options><host-options>;独有常用项:DSD dlm='',FRISTOBS,LENGTH,MISSOVER,_INFILE_
时间: 2024-09-15 16:35:57

SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作的相关文章

SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程

SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) 结构化查询语言(SQL) SAS宏语言 2. 宏触发:% 是一个宏语句或宏函数:&是一个宏变量引用 3. 局部宏变量:一般程序定义的为宏变量. 全局宏变量:使用%global语句或通过data步接口子程序产生宏变量以及除SYSPBUFF外的所有自动宏变量都是全局宏变量. 4. 定义宏变量 %let

SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础

SAS学习笔记之<SAS编程与数据挖掘商业案例>(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始. 数据指针:当前内存缓存区,输入数据所在位置. PDV:Program Data Vector,在DATA步中所有涉及的变量被编程当前向量的一部分. 2. SAS编程基础 2.1 SAS逻辑库 SAS逻辑库 | | | SAS数据集 SAS目录 其他SAS文件 | | SAS数据文件 SAS数据视图 2.2 创建逻辑库 libname

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

SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和END之间的语句 DO WHILE 重复执行直到条件为假则退出循环 DO UNTIL 重复执行直到条件为真则退出循环 DO OVER 对隐含下标数组元素执行DO/END之间的语句 END 退出DO或SELECT语句的标志 SELECT 选择执行SAS语句 IF-THEN/ELSE有条件执行一个SAS语句 GO

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

SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 KEEP 规定在数据集中保留的变量 DROP 规定在数据集中删除的变量 ARRAY 定义一个数组 RENAME 重命名数据集变量 LENGTH 定义变量长度 LABEL 定义变量标签 2. 连接符:|| compress:消除空格 RETAIN应用:一是需要对某一个变量值进行累加.比较等操作.二是需要保留之

简明Python教程学习笔记_6_面向对象编程

简介 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象这个类的 实例 .这类似于你有一个int类型的变量,这存储整数的变量是int类的实例(对象). 类(Class)::用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 对象:          通过类定义的数据结构实例.对象包括两个数据成员(类变量和实例变量)和方法. 实例化:      创建一个类的实例,类的具体对象.方法:          类中定义的函数. (方法和函数在

java学习笔记14--多线程编程基础1

多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂   多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易 Java是第一个支持内置线程操作的主流编程语言,多数程序设计语言支持多线程要借助于操作系统"原语(primitives)" Threa

Mcad学习笔记之异步编程

(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结) 让我们来看看同步异步的区别: 同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果 异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作 .NET框架基类库中有好几种类都可以提供同步和异步的方法调用. 因为同步方法调用会导致程序流程中途等待,所以采用同步方法的情况下往往会导致程序执行的延迟 相比来说,在某些条件下选择异步方法调用就可

java学习笔记15--多线程编程基础2

线程的生命周期 1.线程的生命周期 线程从产生到消亡的过程 一个线程在任何时刻都处于某种线程状态(thread state)  线程生命周期状态图 诞生状态 线程刚刚被创建 就绪状态 线程的 start 方法已被执行 线程已准备好运行 运行状态 处理机分配给了线程,线程正在运行 阻塞状态(Blocked) 在线程发出输入/输出请求且必须等待其返回 遇到用synchronized标记的方法而未获得其监视器暂时不能进入执行时 休眠状态(Sleeping) 执行sleep方法而进入休眠 死亡状态 线程

php学习笔记之面向对象编程_php技巧

复制代码 代码如下: <?phpclass db {     private $mysqli; //数据库连接     private $options; //SQL选项     private $tableName; //表名     public function __construct($tabName) {         $this->tableName = $tabName;         $this->db ();     }     private function d