《SAS编程与数据挖掘商业案例》学习笔记之十二
本次重点在: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编程与数据挖掘商业案例》学习笔记之十二的更多相关文章
- 《SAS编程和数据挖掘商业案例》第14部分学习笔记
继续<SAS编程与数据挖掘商业案例>学习笔记系列,本次重点:经常使用全程语句 所谓全程语句.是指能够用在不论什么地方的sas语句,既能够用在data数据步语句里面,也能够用在proc过程步 ...
- 《SAS编程和数据挖掘商业案例》学习笔记# 19
继续<SAS编程与数据挖掘商业案例>学习笔记,本文側重数据处理实践.包含:HASH对象.自己定义format.以及功能强大的正則表達式 一:HASH对象 Hash对象又称散列表,是依据关键 ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
SAS学习笔记之<SAS编程与数据挖掘商业案例>(5)SAS宏语言.SQL过程 1. 一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制
SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
SAS学习笔记之<SAS编程与数据挖掘商业案例>(3)变量操作.观测值操作.SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作
SAS学习笔记之<SAS编程与数据挖掘商业案例>(2)数据获取与数据集操作 1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序, 2. BY语句,DATA步中,BY语句规定 ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
SAS学习笔记之<SAS编程与数据挖掘商业案例>(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始. 数据指针:当前内存缓存区, ...
- 《SAS编程与数据挖掘商业案例》学习笔记之十六
<SAS编程与数据挖掘商业案例>学习笔记,本次重点:sas宏变量 内容包含:宏变量.宏函数.宏參数.通配函数.字符函数.计算函数.引用函数.宏语句.宏应用 1.宏触发器: %name-to ...
- 《SAS编程与数据挖掘商业案例》学习笔记之十五
继续<SAS编程与数据挖掘商业案例>读书笔记,本次重点:输出控制 主要内容包含:log窗体输出控制.output窗体输出控制.ods输出控制 1.log窗体输出控制 将日志输出到外部文件 ...
- 《SAS编程与数据挖掘商业案例》学习笔记之十八
接着曾经的<SAS编程与数据挖掘商业案例>,之前全是sas的基础知识,如今開始进入数据挖掘方面笔记,本文主要介绍数据挖掘基本流程以及应用方向,并以logistic回归为例说明. 一:数据挖 ...
随机推荐
- SICP 习题 (1.39)解题总结
SICP 习题1.39沿着习题1.37, 1.38的方向继续前行,要求我们依据德国数学家J.H.Lambert的公式定义tan-cf过程,用于计算正切函数的近似值. J.H.Lambert的公式例如以 ...
- 【JEECG技术博文】JEECG 简单实例解说权限控制
JEECG简单实例解说权限控制 请大家点击这里为我们投票.2015博客之星.很多其他分享敬请期待 博文地址:http://blog.itpub.net/30066956/viewspace-18687 ...
- php中类的持久化如何实现
php中类的持久化如何实现 一.总结 一句话总结:PHP持久化通过serialize() 和 unserialize() 这两个函数来实现的. 1.持久化之后的对象保存到哪里? 将复杂的数组之类 ...
- BZOJ4817: [Sdoi2017]树点涂色(LCT)
Description Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同.定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色. ...
- http压测工具wrk
安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持LuaJIT和OpenSSL,不过不用担心,大多数类Unix系统都支持.安装wrk非常简单,只要从github上下载wrk源 ...
- Spider_selenium
json模块 什么是json? javascript中的对象和数组 对象:{key:value}取值:对象名.key 数组:[...,...]取值:数组[索引值] 作用 json格式的字符串和Pyth ...
- 高中生活-第9篇-开学之初的“失足”囧事,"刻舟求剑"导致腿折了
时间过得好快啊,上次发表"高中生活-第8篇:夏天的空调,冬天的味道"是2014年9月30日,一转眼,就是一年啊. 我自己以为,很多人可能都以为,我又半途而废了,实则不是哦~ 行百里 ...
- POJ--1753--Flip Game【DFS】
链接:http://poj.org/problem? id=1753 题意:一个4*4的方格,有白棋或者黑棋.每次操作是一个位置的颜色翻转,即白变黑.黑变白,而且与它相邻的四个位置的颜色也都跟着改变, ...
- Android 使用Wake Lock
为了延长电池的使用寿命,Android设备会在一段时间后使屏幕变暗,然后关闭屏幕显示,最后停止CPU.WakeLock是一个电源管理系统服务功能,应用程序可以使用它来控制设备的电源状态. WakeLo ...
- python文件的操作
文件的操作,归根结底就只有两种:打开文件.操作文件 一.打开文件:文件句柄 = open('文件路径', '模式') python中打开文件有两种方式,即:open(...) 和 file(...) ...