本次重点在:sas数据集管理

主要包含:包含数据集纵向拼接、转置、排序、比較、复制、重命名、删除等

1.append语句

注:base数据集和data两个数据集必须结构一样。避免使用force的情况,反复append的会造成反复。

一个避免反复的商业化应用:

%macro dl;

%if %sysfunc(exist(null)) ne 0 %then %do;

proc datasets lib=work nolist;

delete null;

quit;

%end;

proc append base=null data=sashelp.class;run;

%mend dl;

%dl;

假设数据集null存在,则进行删除,否则直接append

还有一个使用的样例;

data _null_;

x=today();

format x yymmdd10.;

call symput('data_month',put(intnx("month",x,0),yymmn6.));

run;

%put &data_month;

data a;

input month$ var;

cards;

200908 10

200909 20

200910 30

200911 40

;

data b;

input  month$ var;

cards;

200911 400

;

data a;

modify a;

if month="&data_month" then remove;

run;

proc append base=a data=b;run;

第一部分:获取当前月

第二部分:删除当前月数据

第三部分:append到数据a

当中第二部分能够用下面两个语句替代,可是效率最高的是remove。效率最低的是sql。

data a;

set a;

if month="&data_month" then delete;

run;

proc sql;

delete from a

where month="&data_month";

quit;

2.sort语句

经常使用选项:

nodupkey:删除反复by值相应的观測

noduprecs:删除反复观測值

Descending 一定要放在降序排序的变量前。

Eg:

data a;

input x y @@;

cards;

1 20 1 10 1 30 2 40 2 50

;

run;

proc sort data=a nodupkey; by x;run;

仅仅取排序变量的每个by组的第一条观測值

上述代码也能够用下面取代:

proc sort data=a ; by x;run;

data b;

set a;

by x;

if first.x;

run;

返回每个by组里面y最小的。

proc sort data=a; by x y;run;

proc sort data=a nodupkey; by x;run;

也能够用data步完毕:

proc sort data=a; by x y;run;

data b;

set a;

by x y;

if first.x;

run;

注:假设使用了nodupkey选项。最好使用out=选项,否则原有数据集会被删除掉一部分。

对于多个字符变量须要sort的情况下,sort前先用catt之类的字符拼接函数拼接全部须要sort的字符变量。

并最好使用out=选项。

data a;

length cat $100;

input x1$ x2$ x3$ y;

cat=catt(of x1-x3);

cards;

a1 b1 c1 1

a2 b2 c2 2

;

run;

proc sort data=a out=b;

by cat;

run;

下面代码也能够运行,可是效率低

proc sort data=a out=b;

by x1-x3;

run;

proc sort data=a ;

by x1-x3;

run;

3.转置transpose过程

proc transpose data= chapt6.score out= chapt6.idnumber name=test prefix=sn;

id studentid;

idlabel student;

run;

注:转置的变量为全部的数值型变量,包含test1、test2、final

对于默认的变量名用studentid取代,并加入前缀sn

对于默认的转之前变量名列转置后的列名_name_改为test,

转置后的变量添加student值

eg:

proc transpose data= chapt6.fishdata

out= chapt6.fishlength(rename=(col1=measurement));

var length1-length4;

by location date;

run;

by组中的4个变量length1-length4进行转置。系统每读取一条by观測。转置后将产生4条观測

data chapt6.fishlength2;

set chapt6.fishdata(keep=location date length1-length4);

array tr[1:4] length1-length4;

do i=1 to 4;

measurement=tr(i);

output;

end;

keep location date measurement;

run;

通过data语句实现上面的转置过程

proc transpose data= chapt6.fishlength

out= chapt6.fishdata2;

var measurement;

by location date;

id _name_;

run;

列转成行

data chapt6.fishdata3;

do i=1 to 4;

set chapt6.fishlength(keep=location date measurement);

array tr[1:4] length1-length4;

tr(i)=measurement;

end;

keep location date length1-length4;

run;

通过data步骤实现列转成行

4.datasets过程

见sashelp

《SAS编程与数据挖掘商业案例》学习笔记之十二的更多相关文章

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

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

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

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

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

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

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

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

  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. 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窗体输出控制 将日志输出到外部文件 ...

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

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

随机推荐

  1. iOS 基于第三方QQ授权登录

    基于iOS实现APP的第三方QQ登陆.接入第三方SDK时的一个主要的步骤: 1,找到相关的开放平台.QQ互联平台,http://connect.qq.com/: 2,注冊成功后创建自己的APP.填写一 ...

  2. 读阮一峰《ECMAScript 6 入门》小结

    读阮一峰<ECMAScript 6 入门>小结,http://es6.ruanyifeng.com/ 1. ES6简介 Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转 ...

  3. [Vue + TS] Create Type-Safe Vue Directives in TypeScript

    Directives allow us to apply DOM manipulations as side effects. We’ll show you how you can create yo ...

  4. 108.sqllite3(C语言数据库库)详解

    //创建数据库,插入表,生效 //创建数据库,插入表,生效 void create_database() { //数据库指针 sqlite3 *db=; //打开数据数据库,初始化指针 int res ...

  5. 1.7 Python基础知识 - 模块初识

    在Python中有很多模块,模块对应的就是python源代码文件.模块中有Python程序自己附带的标准模块,还有很多其他人共享的第三方模块.模块中可以定义变量.函数和类.而多个功能类似的模块可以组织 ...

  6. Javascript和jquery事件--键盘事件KeyboardEvent

    Js和jq事件—键盘事件KeyboardEvent 键盘事件keydown,keypress和keyup,还需要涉及到一个文本事件textInput. keydown,keypress和keyup事件 ...

  7. 洛谷—— P1434 滑雪

    https://www.luogu.org/problem/show?pid=1434#sub 题目描述 Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜 ...

  8. AbstractQueuedSynchronizer的介绍和原理分析

    简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础.使用的方法是继承,子类通过 ...

  9. ajax+客户端与服务器端的交互

    一. AJAX 原生JS var xhr=new XMLHttpRequest(); xhr.open("GET","[请求地址]",false); xhr.o ...

  10. HDU 1996汉诺塔VI

    题目: n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列.由于 发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱 子从下往上的大小仍保持 ...