SAS编程语言中input语句的应用

  •         SAS数据步的建立离不开input语句,在读入外部数据或cards语句后面的数据块时需要通过input语句定义变量。下面介绍input语句定义变量的四种方法:  SAS变量分为字符型和数值型,字符型变量加 $ 符号。

   (本文为博主原创,转载必须标明出处:http://www.cnblogs.com/smallcrystal/p/4841119.html )

  1. input  变量1 变量2 $;/*只列出变量名,变量之间以空格分隔,只是字符类型加$符号。缺点:不能输入带空格的数据,并且字符类型数据最多8个字符。*/

  2. input  变量1 1-X 变量2 $ X+1-Y;/*变量名用列格式定义对应的数据,变量名后的数字指明变量对应的数据所对应的列的位置。缺点:变量数据要严格按照列格式对应的列输入。*/

  3. input 变量1 $变量1总长度.小数位数  变量2 变量2总长度. ;/*指明变量的类型,变量长度。缺点:需要严格按照列格式输入数据。*/

  4. input @变量名1 $变量长度.小数位数;/*通过绝对指针的方式读入变量对应的数据。确定:把变量对应的列位置计算出来。*/

  •     上述第三种是常用的一种方式,对于数据包含特殊字符的情况,可以通过格式修饰符的形式进行处理,格式修饰符包括以下三种:

  1. 冒号(:):从非空单元格开始读取数据,直到满足下面任意情况:(1)遇到下一个空格(2)变量长度已读满(3)数据行结束。例:input 变量1 :$变量长度. 变量2 @;加冒号之后数据输入时不用严格按照数据长度对应列排布了,因为遇到空格即使长度不够也会停止。这是比input第三种读取方式的优势所在。

  2. &:修饰数据中含有空格的字符数据。例:input 变量1 &:$长度.小数位数 变量2 长度.小数位数 @;

  3. ~修饰读取数据对应的列包含单引号、双引号或分隔符的字符列,input 变量1 ~&:$变量长度.小数位数 变量2 变量长度.小数位数;

  •     input 变量中日期和时间变量是转化成数值型变量储存的,读入日期格式的方法:

  1. input 变量名1 $ 变量名2 $ 变量名3 datew.; 日期格式datew.默认为7,w指日期长度,格式ddmmmyy或者ddmmmyyyy,月是应为前三个字符;

  2. input 变量名1 $ 变量名2 $ 变量名3 datetimew.d;日期时间格式datetimew.d,默认16位,我w指日期时间的长度,d小数位用来指定秒的值,ddmmmyyhh:mm:ss.s;

  3. input 变量名1 $ 变量名2 $ 变量名3 Julianw.;读入日期书写格式yydd或yyddd,ddd是按照年初到现在的天数。

  4. 其他格式:ddmmyyw. 、mmddyyw.、yymmddw. 、timew.d等

  •     如果认为通过input定义变量的时候设置变量类型及格式较为麻烦,可以先通过informat语句定义变量格式,再用input来引用变量名即可。

如日期变量:informat 变量名 yymmddw.;   input 变量名;

  •     字符型变量长度超过8字节,需要在input语句之前通过length语句定义变量长度:length 变量名 $ 长度;

SAS学习经验总结分享:篇二—input语句的更多相关文章

  1. SAS学习经验总结分享:篇一—数据的读取

    第一篇:BASE SAS分为数据步的作用及生成数据集的方式 我是学经济相关专业毕业的,从事数据分析工作近一年,之前一直在用EXCEL,自认为EXCEL掌握的还不错. 今年5月份听说了SAS,便开始学习 ...

  2. SAS学习经验总结分享:篇三—SAS函数

    SAS函数学习 文章为原创,禁止复制或转载,转载请标明出处, http://www.cnblogs.com/smallcrystal/p/4842346.html 1.函数输写格式: 1)一般书写格式 ...

  3. SAS学习经验总结分享:篇五-过程步的应用

    之前已经介绍过BASE SAS分为数据步和过程步,过程步是对数据步生成的数据集进行分析和处理,并挖掘数据信息,写出分析报告做总结评价. (本文为原创,禁止复制或转载,转载务必标明出处:http://w ...

  4. SAS学习经验总结分享:篇四—SQL过程

    SQL过程 SQL过程是实现对数据集或关系数据库的表进行操作的过程,对数据集或关系数据库的表进行查询.修改.创建表.删除数据.插入数据和更新数据等功能.提现了SAS对大型数据库管理系统通用的SQL语言 ...

  5. 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态

    最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代 ...

  6. Java菜鸟学习笔记(23)--继承篇(二):继承与组合

    组合是什么 1.继承和组合都是一种随思想渗透而下的编码方式,其根本目的都是为了复用类,减少重复代码 2.要实现一个类的复用,可以分为组合语法和继承语法 3.组合就是通过将一个对象置于一个新类中,将其作 ...

  7. Python学习【第五篇】循环语句

    Python循环语句 接下来将介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次. Python ...

  8. 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享

    CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享 1.缘起    这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意.心里突然冒出个 ...

  9. 从技术小白到收获BAT研发offer,分享我的学习经验和感悟(赠送相关学习资料)

    去年秋季参加了校园招聘,有幸拿到了BAT.头条.网易.滴滴.亚马逊.华为等offer,经过研究生两年的学习积累,终于达成了自己的目标,期间也经历了很多,谨以此文,聊表感叹,也会分享很多我的Java学习 ...

随机推荐

  1. vue中scoped vs css modules

    注意:此文是默认你已经具备scoped和css modules的相关基础知识,所以不做用法上的讲解. 在vue中,我们有两种方式可以定义css作用域,一种是scoped,另一种就是css module ...

  2. 5-Dalvik垃圾收集机制Cocurrent GC

    Dalivik垃圾回收收机制Cocurrent GC简介和学习计划 导语: 在C/C++中,开发者需要手动地管理在堆中分配的内存,但是这往往导致很多问题. 1. 内存分配之后忘记释放,造成内存泄漏. ...

  3. git - 搭建最简单的git server

    以下操作都在 centos7 下进行,但同样适用于centos 6. 1. 安装git-core yum -y install git 添加git用户,用于启动管理git仓库 useradd git ...

  4. java运行时间计算

    long startTime = System.currentTimeMillis(); //获取开始时间 doSomething(); //测试的代码段 long endTime = System. ...

  5. 在npm当中发布自己的包的方法

    首先需要一个注册一个npm账号,注意,必须验证邮箱,不然是无法发布包的!下面是当时的报错 接着在你需要发布的包的文件夹下面打开你的cmd或者其他的命令行输入工具  输入  npm init 初始化你的 ...

  6. client、offset、scroll

    1. client 客户区大小 1.1. clientHeight和clientWidth element.clientHeight表示元素可视区域的高度,包括可视区域中元素的 CSS height+ ...

  7. 页面get post等查看

    原文发布时间为:2010-03-08 -- 来源于本人的百度文章 [由搬家工具导入] http://www.fiddler2.com/Fiddler2/firstrun.asp

  8. Iframe载入页面 及 跳转页面

    原文发布时间为:2009-05-05 -- 来源于本人的百度文章 [由搬家工具导入] 第一个文件 frame1.html <!DOCTYPE html PUBLIC "-//W3C// ...

  9. android的布局-----GridLayout(网格布局)

    学习导图 (一)简介 网格布局由GridLayout所代表,在android4.0之后新增加的布局管理器,因此需要android4.0之后的版本中使用,如果在更早的平台使用该布局管理器,则需要导入相应 ...

  10. linux 共享内存 信号量 同步

    这篇文章将讲述别一种进程间通信的机制——信号量.注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物.有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号.下面 ...