- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SASBase25Reading Raw Data in Fixed Fields 14统计学18陈成
实验项目 SASBase 25Reading Raw Data in Fixed Fields
【实验目的】
区分标准的和非标准的数值型数据
读取标准的固定区域数据
读取非标准的固定区域数据
【实验原理】
列输入的复习
当数据以列的形式或者是在固定区域内显示时,我们可以用列输入的方式来读取数据。用这种方式读取数据时,对每一个区域来说,开始列和结束列都是指定的。字符型变量可以通过
美元符号($)来进行区分。
列输入具有以下的性质:
?它可以从任意的顺序来读取区域内的数据
?它可以用来读取包含空格的字符型变量
?对于缺失的数据来说,我们不需要使用分隔符。缺失的数据会被读取为空格,而且其他区域的数据并不会读取错误
?区域,或是部分区域可以二次读取
?区域不必用空格或是其他的分隔符来分割
?它可以用来读取标准的字符型变量或者是数值型变量
识别非标准的数值型数据
标准的数值型数据变量包含数字,科学记数法,小数点和正负号。如果这个数值型数据包含了逗号(,)或是美元符号($),我们就认为这个数据是非标准的。
非标准的数值型数据包括:
?含有如百分号(%),美元符号($),或是逗号(,)之类特殊字符的变量
?时间与日期变量
?以分数形式,整形二进制,真实二进制或是十六进制出现的数据
选择一种输入方式
SAS提供了两种输入方式来读取固定区域内的数据,分别是列输入和格式化输入 。
?列输入来只读取标准化的数据
?格式化输入来读取同时标准化和非标准化的数据
使用格式化输入
格式化输入使用列指针来控制输入指针的位置,使它在一个指定的位置上。如果第一个变量处于第一列的话,那么列指针控制是可选择的。
@n是一个能移动输入指针到一个指定的数字列的控制指针 ,
+n是一个相对指针控制,它可以让输入指针以现在的位置为基础,向前移动相应的列数。+n指针控制不能向后移动,然而,你可以使用-n的符号来使它向后移动
使用informat输入
informat告诉SAS程序如何来读取原始数据我们有用来读取标准的和非标准的字符型变量的informat输入,也有用来读取标准的和非标准的数值型数据的informat输入。
informat输入通常包含一个w变量来指定原始数据区域的长度。我们通常用小数点(.)
记录的格式
记录的格式通常指定了在文件内部如何记录数据。一些操作系统自带了许多不同的记录格式:其中两个最常见的是固定长度记录和变长度记录。当你把固定区域数据读取到SAS数据集内时,如果采用的是变长度记录,那么你的变量很可能变短或是消失,这时候,PAD选项可以把每个记录用空格来拉长,这样所有的变量都有同样的长度。
【实验内容】
使用@n进行格式化输入
使用+n进行格式化输入
用comma来表示非标准的数值型变量
在一个程序中使用@n,+n的格式化输入,并用comma控制非标准的数值型变量
格式化输入的汇总
【实验程序及解释】
使用@n进行格式化输入
data sasuser.vansales;
infile vandata;
input Region $9. @13 Quarter 1.
@16 TotalSales comma11.;
run;
proc print data=sasuser.vansales;
run;
使用+n进行格式化输入
data sasuser.vansales;
infile vandata;
input +12 Quarter 1. @1 Region $9.
+6 TotalSales comma11.;
run;
proc print data=sasuser.vansales;
run;
用comma来表示非标准的数值型变量
data perm.empinfo;
infile empdata;
input @9 FirstName $5. @1 LastName $7. +7 JobTitle 3.
@19 Salary comma9.;
run;
proc print data=perm.empinfo;
run;
在一个程序中使用@n,+n的格式化输入,并用comma控制非标准的数值型变量
data perm.empinfo;
infile empdata;
input @9 FirstName $5. @1 LastName $7.
+7 JobTitle 8. @19 Salary comma8.;
run;
【补充练习】
格式化输入的汇总
data sasuse
文档评论(0)