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

1. SAS变量操作的常用语句

ASSIGNMENT  创建或修改变量
SUM 累加变量或表达式
KEEP 规定在数据集中保留的变量
DROP 规定在数据集中删除的变量
ARRAY 定义一个数组
RENAME 重命名数据集变量
LENGTH 定义变量长度
LABEL 定义变量标签

2. 连接符:||

compress:消除空格
RETAIN应用:一是需要对某一个变量值进行累加、比较等操作。二是需要保留之前的某一满足条件的变量值到指定的观测对应的变量。

3.维度函数:MID() DIM(MULT)等加于DIM(MULT,1)

LABEL:标签

4. SAS观测值操作

OUTPUT 输出当前在PDV中的观测,继续无条件自行下面的语句。
IF 如果满足条件,继续执行后面语句;否则,返回DATA步开头。
WHERE 观测进入PDV之前进行条件判断。
REPLACE 更新观测,但仅在MODIFY语句中适用。
REMOVE 删除观测,但仅在MODIFY语句中适用。
DELETE 如果满足条件,返回DATA步开头;否则继续执行后面语句。
STOP 停止输出当前PDV中的观测,并退出DATA步。 WHERE语句在PDV之前执行。

5. 数据集管理主要包括数据集纵向拼接、转置、排序、比较、复制、重命名、删除等操作。通过SAS的过程步完成,常用过程步。

APPEND  把来自SAS数据集的所以数据添加到另外一个SAS数据集的后面。
SORT 对原有SAS数据集安装一个或多个变量进行排序。
TRANSPOSE 对原有的SAS数据集进行行列转置
CONTENTS 输出SAS逻辑库成员的描述信息
DATASETS 管理SAS逻辑库成员,可以完成对SAS逻辑库中的所有成员进行输出列表、复制、换名、添加和删除等操作。
实践:在PROC SORT中用了NODUPKEY后最好一同使用OUT,OUT可以保证原来的数据集不变,把NODUPKEY后的产生的观测输出到新的数据集中。(万一程序开发有误,有保障)
带OUT=选项的删除重复BY值
        data a;
input x y @@;
cards;
1 20 1 10 1 30 2 40 2 50
;
run;
proc sort data=a nodupkey out=b;by x;run;

6. 行列转置实践

DATA比PROC效率高
对比:
6.1 列转置为行
PROC步:
        proc transpose data=chapt6.fishdata
out=charpt6.fishlength(rename=(coll=measurement));
var length1-length4;
by location date;
run;
    DATA步:
        data chapt6.fishlength2;
set chapt6.fishdata(keep=location data length1-length4);
array tr[1:4] length1-length4;
do i=1 to 4;
measurement=tr(i);
output;
end;
keep location date measurement;
run;
6.2 行转置列
PROC步:
        proc transpose data=chapt6.fishlength
out=chapt6.fishdata2;
var measurement;
by location date;
id _name_;
run;
    DATA步:
    data chapt6.fishlength(keep=location date measurement);
do i=1 to 4;
set chapter6.fishlength(keep=location date measurement);
array tr[1:4] length1-length4;
tr(i)=measurement;
end;
keep location date length1-length4;
run;

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

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

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

  2. 《SAS编程与数据挖掘商业案例》学习笔记之十八

    接着曾经的<SAS编程与数据挖掘商业案例>,之前全是sas的基础知识,如今開始进入数据挖掘方面笔记,本文主要介绍数据挖掘基本流程以及应用方向,并以logistic回归为例说明. 一:数据挖 ...

  3. 《SAS编程和数据挖掘商业案例》第14部分学习笔记

    继续<SAS编程与数据挖掘商业案例>学习笔记系列,本次重点:经常使用全程语句 所谓全程语句.是指能够用在不论什么地方的sas语句,既能够用在data数据步语句里面,也能够用在proc过程步 ...

  4. 《SAS编程和数据挖掘商业案例》学习笔记# 19

    继续<SAS编程与数据挖掘商业案例>学习笔记,本文側重数据处理实践.包含:HASH对象.自己定义format.以及功能强大的正則表達式 一:HASH对象 Hash对象又称散列表,是依据关键 ...

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

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...

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

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

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

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始. 数据指针:当前内存缓存区, ...

  8. 《SAS编程与数据挖掘商业案例》学习笔记之十六

    <SAS编程与数据挖掘商业案例>学习笔记,本次重点:sas宏变量 内容包含:宏变量.宏函数.宏參数.通配函数.字符函数.计算函数.引用函数.宏语句.宏应用 1.宏触发器: %name-to ...

  9. 《SAS编程与数据挖掘商业案例》学习笔记之十五

    继续<SAS编程与数据挖掘商业案例>读书笔记,本次重点:输出控制 主要内容包含:log窗体输出控制.output窗体输出控制.ods输出控制 1.log窗体输出控制 将日志输出到外部文件 ...

随机推荐

  1. JavaSE 学习笔记之包装类(十七)

    基本数据类型对象包装类:是按照面向对象思想将基本数据类型封装成了对象. 好处: 1:可以通过对象中的属性和行为操作基本数据. 2:可以实现基本数据类型和字符串之间的转换. 关键字   对应的类名 by ...

  2. NYOJ 832 合并游戏

    合并游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 大家都知道Yougth除了热爱编程之外,他还有一个爱好就是喜欢玩.某天在河边玩耍的时候,他发现了一种神奇的石 ...

  3. 【网络流24题】最长k可重区间集问题(费用流)

    [网络流24题]最长k可重区间集问题 [问题分析] 最大权不相交路径问题,可以用最大费用最大流解决. [建模方法] 方法1 按左端点排序所有区间,把每个区间拆分看做两个顶点<i.a>< ...

  4. 分块试水--CODEVS5037 线段树练习4加强版

    感觉这才算入门题吧..前面那些线段树练习,改几个字符就过了一定要搞成几道题.. n<=2e5的数列,给常数K<=2e5,m<=2e5个操作,区间加,问一个区间里K的倍数. 这题空间? ...

  5. 源码分析-react2-根节点渲染

    //FiberNode{ alternate : '通过该属性和后面的切片进行比较', child : '改切片的子切片', firstEffect : '当前要加入的切片', stateNode : ...

  6. pg_dump: [archiver (db)] connection to database “dbase” failed: FATAL: Peer authentication failed for user “postgres”

    "Peer authentication" means that it's comparing your database username against your Linux ...

  7. C#根据规则生成6位随机码

    #region 获得6位优惠码 zhy public static string CreatePromoCode(string code) { if (code == "") { ...

  8. willRotateToInterfaceOrientation 屏幕旋转

    /* 1.屏幕发生旋转后, 这个旋转事件会先传递给window的rootViewController(窗口的根控制器) 2.rootViewController又会将这个旋转事件传递给它的子控制器 * ...

  9. Unity学习笔记(4) --- Unity的界面排版:初识GUI

    GUI和GUILayout是Unity提供的UIKit.在使用GUI的Controls时都要求设置Rect參数.没办法做到自己主动排版,给适配带来难度.而GUILayout的设计就是为了弥补这个缺陷, ...

  10. LeetCode 463. Island Perimeter (岛的周长)

    You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represen ...