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

继续读书笔记,本文重点侧重sas观测值的操作方面, 主要包括:输出观测值、更新观测值、删除观测值、停止输出观测值等

1.output语句   输出当前在pdv中的观测值,继续无条件执行下面的语句。

注意:简单的data步不需要output语句,run语句会自动输出pdv中的数据到数据集,并返回data步开头继续执行下一条观测。

在有output语句和run语句同时存在时,pdv只会执行output的结果到正在被创建的数据集,而执行run语句的结果是pdv会清空所有的变量值为缺失值

data a;

input id x1-x3;

cards;

101 10 20 30

102 40 50 60

;

data b;

set a;

x=x1;output;

x=x2;output;

x=x3;output;

output;

run;

由于data步包含四个output语句,因此每次读入一条观测,程序会执行output语句,总共会输出8条记录

data out1 out2;

set sashelp.class;

if _n_ le 7 then output out1;

else output out2;

run;

if条件的output语句,只有满足if条件时pdv才把得到的结果输出到正在被创建的数据集

 

data a;

input x y @@;

cards;

1 10 1 20 1 200 2 30 2 40

3 50 3 60 4 70 3 80 4 400

;

 

proc sort data=a;by x;run;

data b;

set a;

by x;

retain rt;

if first.x then rt=0;

if last.x then output;

rt=y;

run;

输出by变量的last观测值,并保留last最近前一条观测变量值。

该例中outputrun同时出现时,值输出output后面的,不管output前面的条件是否成立;执行run语句的结果是PDV会清空所有的变量值为缺失。

是对每一个by组进行循环的,且first.x也是针对by组的

 

2.if语句 是一个可执行语句,将满足条件的观测值输出到正在被创建的数据集中

3.where语句  不是一个可执行语句,判断条件是在pdv之前

注:不能使用自动变量_n_或者其他选项如obs,pointwhere语句一起使用。因为where语句是在pdv之前

使用where语句必须保证读入数据集的完整性,不能使用如firstobs=2等不能完整读入数据集的选项

对同一数据集,同时使用where语句和where=选项,则系统只使用where=选项,而不考虑where语句

where语句和by语句一起出现时,先执行where语句,然后在by语句,by组对执行完毕后的数据集重新定义first/last

 

Where语句和if语句 区别

1.where语句是在观测进入pdv之前起作用,而if语句是在pdv中的观测起作用。

2.where语句不是一个可执行语句,而子集if语句是可执行语句

3.where语句有自己特有的表达式,而if语句使用通用的sas表达式

4.where语句比if效率高

 

4.replace语句和remove语句和output语句

这两个语句只能跟modify一起使用,

数据集:

libname chapt5 "f:\data_model\book_data\chapt5";

data chapt5.a;

input x y @@;

cards;

1 10 2 20 3 30 4 40

;

run;

libname chapt5 "f:\data_model\book_data\chapt5";

data chapt5.b;

input x y @@;

cards;

3 300 4 400 5 500

;

run;

 

eg

data chapt5.a;

modify chapt5.a chapt5.b;

by x;

if _iorc_=0 then replace;

else _error_=0;

run;

对匹配到的数据,更新数据集将覆盖主数据集,对于未匹配到的数据,不予考虑

data chapt5.a;

modify chapt5.a chapt5.b;

by x;

if _iorc_=0 then replace;

else do; _error_=0;output;end;

run;

对匹配到的数据,更新数据集将覆盖主数据集,对于未匹配到的数据,将更新数据集数据也输出到主数据集中

data chapt5.a;

modify chapt5.a chapt5.b;

by x;

if _iorc_=0 then remove;

else _error_=0;

run;

对于匹配到的数据从主数据中删除

 

5.delete语句和stop语句

data a;

set sashelp.class;

if sex eq "M" then delete;

run;

删除部分观测,以下代码目的一样

data a;

set sashelp.class;

if sex ne "M";

run;

 

data a;

set sashelp.class;

if _n_ ge 3 then stop;

run;

stop直接跳出data,最终数据集a只有两条观测

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【1】淘宝sdk装修入门引言

淘宝sdk开发者要具备的一些要求:【1】photoshop图像处理能力【2】html常用标签的基础知识【3】htmlcss布局的基础知识【4】简单的php输出语句【5】对淘宝装修的一些基本了解淘宝sdk的开发流程:【1】设计平面效果图【2】创建本地模板文件【3】创建自定义设…

基于嵌入式webserver的服务器状态监控

其实也是在easyhadoop做第二次重构的时候用到了这个嵌入式的webserver去做服务器状态的监控,可以单独摘出来写个东西。思路主要是用python脚本获取linux服务器的各种状态信息,然后用webserver的方式,以json数据发给http,主控节点去…

Yii框架里用grid.CGridView调用pager扩展不显示最后一页按钮的解决

有如下一例,调用zii.widgets.grid.CGridView显示Blog信息,代码如下: 1 $this->widget(zii.widgets.grid.CGridView, 2 array(3 id>blog-grid,4 dataProvider>$model->search(),5 filter>$model,6 pa…

.NET 6新特性试用 | PeriodicTimer

前言在.NET中,已经存在了5个Timer类:System.Threading.TimerSystem.Timers.TimerSystem.Web.UI.TimerSystem.Windows.Forms.TimerSystem.Windows.Threading.DispatcherTimer不管以前这样设计的原因,现在.NET 6又为我们增加了一个新Timer&…

shell--指“提供使用者使用界面”的软件(命令解析器)

在计算机科学中,Shell俗称壳(用来区别于核), 是指“提供使用者使用界面”的软件(命令解析器)。 它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语…

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

本次重点:data步循环与控制 涉及:if/then/else语句,select语句,do语句,continue语句,leave语句 1.if then else 语句 高效率的if应用: 1) If x1 then y1; Else if x2 then y2; Els…

ChatForFun 公众号使用说明

使用方法 2016-07-16 DennisMi ChatForFun1,发送 #1 实现登陆,或者退出登陆 2,发送 #2 实现加入聊天,和退出聊天 3,聊天开始后,可以直接发送消息 4,如果需要退出登陆或者退出聊天,…

sessionfunctionphp实战第六天

最近研究sessionfunction,稍微总结一下,以后继续补充: 今天学习了做后台页面,很失败就不展示了。 php方面:以下代码可以屏蔽php注意级别的错误,即 抛出任何非注意错误 error_reporting(E_ALL&~E_NOTICE…

利用WebBrowser实现Web打印的分析

利用WebBrowser实现Web打印的分析 原文:利用WebBrowser实现Web打印的分析WebBrowser是IE内置的浏览器控件,无需用户下载。本文档所讨论的是有关IE6.0版本的WebBrowser控件技术内容。其他版本的IE应该也支持。与其相关的技术要求有:打印文档的生成、页面设…

强大的grep命令

强大的grep命令网上关于grep命令的解释一搜一大堆,基本都是把man命令大致翻译了一下,说实话,看完就忘!个人认为,学习命令最好的方式就是模拟真实环境,写出一些可能用到的命令组合,然后慢慢消化&…

.NET 6新特性试用 | 总结:我最喜欢的5个特性

前言不知不觉,《.NET 6新特性试用》系列文章已经写了20多篇,而今天终于要告一段落了。如果你还没有看过,详细文章列表在这里:.NET 6新特性试用系列在这么多特性中,我最喜欢如下5个特性:1、最小Web API仅需三…

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

本次重点在:sas数据集管理 主要包括:包括数据集纵向拼接、转置、排序、比较、复制、重命名、删除等 1.append语句 注:base数据集和data两个数据集必须结构一样,避免使用force的情况,重复append的会造成重复。 一个避…

mikrotikROS系统的几种安装方法

这里简单介绍下几种ROS的安装方法,以及适用于哪些设备,这里我们先提供一个ROS6.0全系列版本的下载链接mikrotik-RouteOS-V6.0正式版下载 或者前往官方下载最新版常见的ROS硬件一般分为:X86架构(也是最常用的)mipsbe(欧米tik,部分RB系列,SXT,Groove等)mipsle(RBC系列,RB100,R…

分布式云+dubbo+zookeeper+Springmvc整合

2019独角兽企业重金招聘Python工程师标准>>> Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。 一:单机模式安装…

.Net下你不得不看的分表分库解决方案-多字段分片

介绍本期主角:ShardingCore 一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案,具有零依赖、零学习成本、零业务代码入侵dotnet下唯一一款全自动分表,多字段分表框架,拥有高性能,零依赖、零学习成本、零业务代码入侵,并且支持读写分离动态分表分库,同一种…

知乎高赞:看懂这个颠覆世界观的认知,远比做1000道题更有用!

▲ 点击查看知乎上曾有个提问:“见过世面究竟有多重要?”其中一个点赞过万回答让无数网友产生共鸣:会讲究,能将就,能享受最好的,也能承受最坏的。见过世面的他们自然会在人群中散发不一样的气质&#xff0c…

Linux之VI命令详解

vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来&#xff…

WebBrowser!

WebBrowser! 原文:WebBrowser!我现在先放一些基础的文章在这里,以后再放别的上来官方范例连接http://www.microsoft.com/china/msdn/library/langtool/vcsharp/OvervwWebBrowExp.mspxQ&A 2005年5月21日 0:14:19 Q: 新键入的地址不能在新建好的窗口里打开:A:每…