SAS学习2(data步,input语句,从文件中读取数据)

数据步中最复杂的是INPUT语句

在这里插入图片描述

data语句

data是数据步开始的语句
数据集名可以写成逻辑库名+点+数据集库名
一个会话,可以建立多个数据集,最后建立的数据集是当前数据集
不需要数据集的时候,数据集用_NULL_名字定义
在这里插入图片描述

DATALINES相当于cards,用来定义内置数据,完全等价
这里在过程步中输出的时候,输出的是当前数据集,也就是最后创建的数据集score;要输出student数据集,需要指定
在这里插入图片描述

在这里插入图片描述
提交以上代码,显示如下,只在日志中显示了结果值:
在这里插入图片描述

第一句逻辑库ep,对应的物理路径,这样建立的数据集就可以在磁盘上存在,下次可以直接使用
数据集是ep底下的students数据集
在这里插入图片描述

input语句

定义或者描述如何读入数据
多个数据项描述用空格分割开
在这里插入图片描述
在这里插入图片描述

列表输入

列表输入这种方法,数据必须是空格分割
在这里插入图片描述

列输入

这里1-18表示数据所在的字符位置
这里可以看到可以根据位置重复读取一行的数据
age变量是用date()这个函数获取当前时间,然后用year()函数获取年份
在这里插入图片描述

如果要写input,必须要有输入,或者是cards,或者是infile
这里看到不区分大小写
在这里插入图片描述

格式化输入

变量名后面指定输入格式,前面可以加上修饰符
mmyydd10固定写法,表示10位的时间格式,月日年加起来6位,两个分隔符加起来8位(PPT里写错了,书上是8)
weight表示整体有4位宽,小数点后保留一位
在这里插入图片描述
在这里插入图片描述

这里看到,读出来的日期,是一个数字,而不是直接显示的年月日,应该是计算的某一天到输入日期的天数;
另外,读体重的时候,是小数点,SAS中小数点的读取是从后向前的,因此对于63,先读到3被作为小数点后的部分,就会被读成6.3;640读成64.0,这个比较奇怪
在这里插入图片描述

输出时间格式的时候,需要用format定义worddate. 格式
这里特别注意,这个格式后面要加个.,如果不加是没有效果的
在这里插入图片描述

格式列表

格式列表用于变量多且格式相似的情况
score1到score5五个变量
第三个列子少了个s
在这里插入图片描述

用&修饰符解决数据中出现一个空格的问题
在这里插入图片描述

指针控制

行指针可以跨行读取
在这里插入图片描述

绝对指针,指针位置是绝对的,表示这一行的哪一列
数值型就是第几列

第一个例子,从15列开始读sales变量,变量长度是5
第二个例子,用A变量来代替数字,其实和1没有区别
第三个例子,表达式算出来整数

下面这个例子,读到两个变量的值,一个是grade 67,一个是A 123
在这里插入图片描述

字符型指针工作方式类似于搜索
字符串也是用单引号
这里从size=后面开始读取,这里第一行读取到的就是343,第二行读取到的就是123

在这里插入图片描述

第一个例子,先从23位置读入length,4个长度,加起来是27
然后从27+5开始,读width

在这里插入图片描述

/表示将指针移到当前行的下一输入行的第一列
#3 表示跳转到第三行
第一个例子中,可以看到每一次读取数据需要读三行,那么第二次读取的时候就是从第四行开始(但是行号会被重置,相当于将已经读入的前三行忽略掉)

第二个例子中,最后跳到了第四行但是没有任何操作,这个是告诉程序后两行相当于空行

第三个例子,读完grade变量,到第二行读取五个变量
在这里插入图片描述

行尾随符,可以保持读数据不换行
在这里插入图片描述
在这里插入图片描述

定义内置数据
如果某行数据少于变量个数,那么读取的时候就会跳到下一行去继续读取数据,导致数据混乱,所以需要进行处理
infile datalines MISSOVER语句用于表示数据不足时,按照缺失值填充,而不去跳到下一行读取
missover:当每行数据个数不一致时,有的变量可能没被赋值,missover告诉sas将这个变量赋为缺失值
在这里插入图片描述

封号一般用于结束数据,如果数据中有封号,那么用这条语句
这时,数据结束用四个封号结束
在这里插入图片描述
在这里插入图片描述

length

在这里插入图片描述

label

输出的时候打印别名
在这里插入图片描述

lostcard

这里每次两行读取数据,但是第三组数据会出现问题,丢掉了第一行数据
如果不做处理的话,后面的行都会出现错误

这里判断条件是如果id不等于(NE)idcheck,那么就表示丢失数据了,不读取
在这里插入图片描述

在这里插入图片描述

informat/format

在这里插入图片描述

missing

如果没有missing这个语句的话,如果遇到第二行数据,因为是R,而不是数值形的变量,所以sas会将这个值处理成小数点,即缺省值
加上missing,指定数据缺失的原因,从而可以加入到数据集中

这个用N R表示缺项值的代表符号

这个作用是,比如调查一个人的回答,n就表示没有这个人,r就表示拒绝回答之类的;表示对缺项值进行说明,说明什么原因导致了缺项
在这里插入图片描述

注释语句:

单条语句用 * 号,多行用 /* … */
在这里插入图片描述

options语句

改变系统设置
在这里插入图片描述

从外部文本文件读取数据

在这里插入图片描述
在这里插入图片描述

从现有数据集读取数据

在这里插入图片描述

从excel表单读取数据

从这里指定读入数据的类型,以及数据所在的位置,还有要保存到哪个逻辑库中,以及数据集的名字
然后会有一个选项,就是要不要保存读入数据的那一段代码,把代码保存到哪里。。
最后就会生成相应的数据集放在对应的位置
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值