SAS学习经验总结分享:篇二—input语句
SAS编程语言中input语句的应用
SAS数据步的建立离不开input语句,在读入外部数据或cards语句后面的数据块时需要通过input语句定义变量。下面介绍input语句定义变量的四种方法: SAS变量分为字符型和数值型,字符型变量加 $ 符号。
(本文为博主原创,转载必须标明出处:http://www.cnblogs.com/smallcrystal/p/4841119.html )
input 变量1 变量2 $;/*只列出变量名,变量之间以空格分隔,只是字符类型加$符号。缺点:不能输入带空格的数据,并且字符类型数据最多8个字符。*/
input 变量1 1-X 变量2 $ X+1-Y;/*变量名用列格式定义对应的数据,变量名后的数字指明变量对应的数据所对应的列的位置。缺点:变量数据要严格按照列格式对应的列输入。*/
input 变量1 $变量1总长度.小数位数 变量2 变量2总长度. ;/*指明变量的类型,变量长度。缺点:需要严格按照列格式输入数据。*/
input @变量名1 $变量长度.小数位数;/*通过绝对指针的方式读入变量对应的数据。确定:把变量对应的列位置计算出来。*/
上述第三种是常用的一种方式,对于数据包含特殊字符的情况,可以通过格式修饰符的形式进行处理,格式修饰符包括以下三种:
冒号(:):从非空单元格开始读取数据,直到满足下面任意情况:(1)遇到下一个空格(2)变量长度已读满(3)数据行结束。例:input 变量1 :$变量长度. 变量2 @;加冒号之后数据输入时不用严格按照数据长度对应列排布了,因为遇到空格即使长度不够也会停止。这是比input第三种读取方式的优势所在。
&:修饰数据中含有空格的字符数据。例:input 变量1 &:$长度.小数位数 变量2 长度.小数位数 @;
~修饰读取数据对应的列包含单引号、双引号或分隔符的字符列,input 变量1 ~&:$变量长度.小数位数 变量2 变量长度.小数位数;
input 变量中日期和时间变量是转化成数值型变量储存的,读入日期格式的方法:
input 变量名1 $ 变量名2 $ 变量名3 datew.; 日期格式datew.默认为7,w指日期长度,格式ddmmmyy或者ddmmmyyyy,月是应为前三个字符;
input 变量名1 $ 变量名2 $ 变量名3 datetimew.d;日期时间格式datetimew.d,默认16位,我w指日期时间的长度,d小数位用来指定秒的值,ddmmmyyhh:mm:ss.s;
input 变量名1 $ 变量名2 $ 变量名3 Julianw.;读入日期书写格式yydd或yyddd,ddd是按照年初到现在的天数。
其他格式:ddmmyyw. 、mmddyyw.、yymmddw. 、timew.d等
如果认为通过input定义变量的时候设置变量类型及格式较为麻烦,可以先通过informat语句定义变量格式,再用input来引用变量名即可。
如日期变量:informat 变量名 yymmddw.; input 变量名;
字符型变量长度超过8字节,需要在input语句之前通过length语句定义变量长度:length 变量名 $ 长度;
SAS学习经验总结分享:篇二—input语句的更多相关文章
- SAS学习经验总结分享:篇一—数据的读取
第一篇:BASE SAS分为数据步的作用及生成数据集的方式 我是学经济相关专业毕业的,从事数据分析工作近一年,之前一直在用EXCEL,自认为EXCEL掌握的还不错. 今年5月份听说了SAS,便开始学习 ...
- SAS学习经验总结分享:篇三—SAS函数
SAS函数学习 文章为原创,禁止复制或转载,转载请标明出处, http://www.cnblogs.com/smallcrystal/p/4842346.html 1.函数输写格式: 1)一般书写格式 ...
- SAS学习经验总结分享:篇五-过程步的应用
之前已经介绍过BASE SAS分为数据步和过程步,过程步是对数据步生成的数据集进行分析和处理,并挖掘数据信息,写出分析报告做总结评价. (本文为原创,禁止复制或转载,转载务必标明出处:http://w ...
- SAS学习经验总结分享:篇四—SQL过程
SQL过程 SQL过程是实现对数据集或关系数据库的表进行操作的过程,对数据集或关系数据库的表进行查询.修改.创建表.删除数据.插入数据和更新数据等功能.提现了SAS对大型数据库管理系统通用的SQL语言 ...
- 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态
最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代 ...
- Java菜鸟学习笔记(23)--继承篇(二):继承与组合
组合是什么 1.继承和组合都是一种随思想渗透而下的编码方式,其根本目的都是为了复用类,减少重复代码 2.要实现一个类的复用,可以分为组合语法和继承语法 3.组合就是通过将一个对象置于一个新类中,将其作 ...
- Python学习【第五篇】循环语句
Python循环语句 接下来将介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次. Python ...
- 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享
CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享 1.缘起 这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意.心里突然冒出个 ...
- 从技术小白到收获BAT研发offer,分享我的学习经验和感悟(赠送相关学习资料)
去年秋季参加了校园招聘,有幸拿到了BAT.头条.网易.滴滴.亚马逊.华为等offer,经过研究生两年的学习积累,终于达成了自己的目标,期间也经历了很多,谨以此文,聊表感叹,也会分享很多我的Java学习 ...
随机推荐
- Vue.js笔记 — vue-router路由懒加载
用vue.js写单页面应用时,会出现打包后的JavaScript包非常大,影响页面加载,我们可以利用路由的懒加载去优化这个问题,当我们用到某个路由后,才去加载对应的组件,这样就会更加高效,实现代码如下 ...
- 运输问题2(cogs 12)
[问题描述] 一个工厂每天生产若干商品,需运输到销售部门进行销售.从产地到销地要经过某些城镇,有不同的路线可以行走,每条两城镇间的公路都有一定的流量限制.为了保证公路的运营效率,每条公路都有一 ...
- JavaScript中in的用法
JavaScript中的in 操作符是对Object(对象)操作的,并不是针对数组. in 的右边必须是对象变量 例如:var data = {id:1, name:'AAA'};if('name' ...
- linux服务器端口netstat
netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的 ...
- python之正则表达式【转】
首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计 ...
- POJ3687 Labeling Balls
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13645 Accepted: 3955 Description Wind ...
- Caps_Locl exchang Esc
vim ~/.Xmodmap 1 remove Lock = Caps_Lock 2 keysym Escape = ...
- layui 的单选框
<div class="layui-form-item"> <label class="layui-form-label">是否通过&l ...
- 牛客网 牛客练习赛13 A.幸运数字Ⅰ
A.幸运数字Ⅰ 链接:https://www.nowcoder.com/acm/contest/70/A来源:牛客网 水题. 代码: #include<iostream> #i ...
- 双端队列-deque【集vector与list于一身的牺牲内存换功能完善】
看到双端队列(deque)了,书上是这样说的:除了栈和队列外还有一种限定性数据结构是双端队列:双端队列是限定插入和删除操作在表的两端进行的线性表:尽管双端队列看起来似乎比栈和队列更灵活,但实际上在应用 ...