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

本次重点:data步循环与控制

涉及:if/then/else语句,select语句,do语句,continue语句,leave语句

1.if then else 语句

高效率的if应用:

1

If  x=1 then y=1;

Else if x=2  then y=2;

Else y=3;

对于每一个数据集的观测,if-then-else只会判断一次,为真则执行

2

If status=1 then

If status=5 then

If status=9 then output;

高效率:包含一个序列if-then语句,只要其中有一个if为假,则程序将不再执行下面的if语句

If status=1 and status=5 andstatus=9 then output;则无效率,需要判断所有的条件

3

If status in (1,5,8,9) then newstat="single";

Else  newstat='not single'

高效率:对于在in算符里面的表达式,只要有一个为真,则sas就执行后面的语句

如果用or语句的形式,则需要判断所有的条件是否为真,效率则低

2.select语句

libname chapt6 'f:\data_model\book_data\chapt6';

data fishdata4;

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

    by location date;

array tr[1:4] length1-length4;

    retain length1-length4;

    if first.date then do i=1 to 4;

        tr(i)=0;

    end;

    select(_name_);

      when ('length1') length1=measurement;

      when ('length2') length2=measurement;

      when ('length3') length3=measurement;

      when ('length4') length4=measurement;

      otherwise;

    end;

if last.date;

keep location date length1-length4;

run;

拉直数据,相当于行转列;

 

中间黄色部分也可以用select的另一种方式:

    select;

      when (_name_='length1') length1=measurement;

      when (_name_='length2') length2=measurement;

      when (_name_='length3') length3=measurement;

      when (_name_='length4') length4=measurement;

      otherwise;

    end;

3.do语句

1 do组语句

Do;

 执行程序块;

end

常用于和if then/else语句中

2do循环语句

Do   i=1 to 10;

Do  i=1 to exit;

Do i=1 to n-1;

Do i=1 to 100 by 10; --规定步长

Do i=1 to 20 by 2 until (x>y);   --每次循环后被计算

Do i=10 to 0 by -1 while(month='JAN');  --每次循环前计算

3do while语句  循环前判断条件

n=0;

Do while (n<5);

Put n=;

n 1;

End;

4)do until 语句  在循环后计算,故循环至少被执行一次

n=0;

Do until(n>=5);

Put n=;

n 1;

End;

商业实战;

libname ch7 'f:\data_model\book_data\chapt7';

proc sort data=ch7.smooth;by cid month;run;

data smooth;

set ch7.smooth;

by cid;

array lags(12);

lags(1)=lag(balance);

do i=2 to 12;

    lags(i)=lag(lags(i-1));

    end;

do j=12 to 2 by -1;

if j gt cns then lags(j)=.;

put j=;

end;

if first.cid then do

       cns=0;

       do i=1 to 12;lags(i)=.;

       end;

    end;

cns 1;

mean6=mean(of lags1-lags6);

mean12=mean(of lags1 - lags12);

 

run;

计算每个客户在每个月前6个月和前12个月移动平均余额;

4.控制语句

continue语句和leave语句

data a;

do i=1 to 20;

sumx i;

if sumx le 15 then continue;

output;

end;run;

sumx<15时跳出本次循环,因而最后返回的是最后的15条数据

data a;

do i=1 to 10;

sumx i;

if sumx gt 15 then leave;

output;

end;

run;

sumx大于15时,结束循环,故只输出前5条数据

注:

continue停止当前循环继续下一次循环;

leave跳出当前循环,执行下一个sas语句;

continue值能在do循环中;

leave语句可以同do循环活select语句共同使用。

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

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

相关文章

ChatForFun 公众号使用说明

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

sessionfunctionphp实战第六天

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

利用WebBrowser实现Web打印的分析

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

强大的grep命令

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

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

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

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

本次重点在&#xff1a;sas数据集管理 主要包括&#xff1a;包括数据集纵向拼接、转置、排序、比较、复制、重命名、删除等 1.append语句 注&#xff1a;base数据集和data两个数据集必须结构一样&#xff0c;避免使用force的情况&#xff0c;重复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配置方式&#xff0c;透明化接入应用&#xff0c;对应用没有任何API侵入&#xff0c;只需用Spring加载Dubbo的配置即可&#xff0c;Dubbo基于Spring的Schema扩展进行加载。 一&#xff1a;单机模式安装…

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

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

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

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

Linux之VI命令详解

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

WebBrowser!

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

Android USB Host与HID通讯(二)

2019独角兽企业重金招聘Python工程师标准>>> 原文出处&#xff1a;http://han21912.lofter.com/post/c3919_51401d 接上一篇&#xff1a;Android USB Host与HID通讯 (一) 从上篇已经可以枚举到HID设备&#xff0c;接下来看看寻找设备的接口和通信端点&#xff0c;…

数据挖掘技术在信用卡业务中的应用及实例分析

信用卡业务具有透支笔数巨大、单笔金额小的特点&#xff0c;这使得数据挖掘技术在信用卡业务中的应用成为必然。国外信用卡发卡机构已经广泛应用数据挖掘技术促进信用卡业务的发展&#xff0c;实现全面的绩效管理。我国自1985年发行第一张信用卡以来&#xff0c;信用卡业务得到…

ubuntu之find方法

linux 下的find 命令 小总结..谢谢大家赏光!通用格式:find pathname -options [-print -exec -ok]例子:find / -name filename 再根目录里面搜索文件名为filename的文件find /etc -name *s*在目录里面搜索带有s的文件find /etc -name *S 在目录里面搜索以s结尾的文件find /etc …

CentOS7安装PHP5.6.23

为什么80%的码农都做不了架构师&#xff1f;>>> 美国时间2014年11月13日&#xff0c;PHP开发团队&#xff0c;在「PHP 5.6.3 is available&#xff5c;PHP: Hypertext Preprocessor」上公布了PHP5.6系的最新版本「PHP 5.6.3」。 在最新的版本5.6.3不仅修改了多个Bu…

使用 Apache Pig 处理数据5

使用 Apache Pig 从大数据集中获得所需的信息 Apache Pig 是一个高级过程语言&#xff0c;适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询&#xff0c;Pig 可以简化 Hadoop 的使用。本文将探索 Pig 背后的语言&…

为什么接吻需要闭眼睛?

1 你用上5G了吗&#xff1f;它已经用上了▼2 戴口罩的好处又增加了▼3 原来如此...▼4 哈哈哈哈▼5 露脐装的正确打开方式&#xff08;素材源于网络&#xff0c;侵删&#xff09;▼6 火鸡面到底有多辣▼7 孩子你要完了&#xff08;素材来源网络&#xff0c;侵删&#xff0…

最近要出绩效了

上周我们公司的绩效面谈全部结束了&#xff0c;每年到这个时间点就是打绩效的时候了&#xff0c;对于职场打工人来说绩效绝对是最重要的事情之一&#xff0c;原因也很简单&#xff1a;奖金、晋升、涨薪都和它有关系。比如下面这个美团员工在脉脉上的自曝就很凄凉&#xff1a;互…