




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实习四 输入格式与导入数据 输入格式 输入原始数据有两个关键点也是难点,一是排列不规则数据,这 需要灵活的选择读取方式 即是使用 input 语句以及结合 infile 语 句;而对于非标准类型格式的数据,则需要定义相应的输 入格 式(informat)。 一、输入格式的语法格式 informat. $ 代表字符型格式,该格式用于字符型变量,没有则表示数值型 格式 informat 格式名称,可以是 SAS 系统的也可以是用户自定义的 w 代表输入格式的宽度,对于大多数格式是指在输入数据中所占 的列数 d 代表小数点右边的位数,范围是 0-31,如果是读取包含小数点 的数值,则忽略 d 值 输入格式总是包含一个点(.),如果. 省略,则 informat 之后需要紧跟一个点,即informat. 二、如何使用 SAS 输入格式? 有四种方法使用输入格式: (一)在 input 语句中; (二)用 input 函数、inputc 函数以及 inputn 函数; (三)在 data 步或 proc 步的 informat 语句中; (四)在 data 步或 proc 步的 attrib 语句中 使用输入格式最简单的方法是在 input 语句中变量名后面使用输 入格式,如, input 15 style $3. 21 price 5.2; 也可以通过 input 函数来使用输入格式,input 函数用输入格式来 读取任意字符变量返回指定格 式的值。因此 input 函数有一个额 外的功能即转换类型,将字符变量转换为其他格式,如 TempCharacter=98.6; TemperatureNumber=input(TempCharacter,4.); 而 inputc 函数和 inputn 函数是专用于字符型和数值型的输入函 数。 三、输入格式的类型 (一)数据输入格式用于告诉 SAS 系统去读取数值数据到数值变量 中; (二)字符输入格式用于告诉 SAS 系统去读取字符数据到字符变量 中; (三)日期时间输入格式用于告诉 SAS 系统去读数据值到表示日期 、时间和日期时间的变量中; (四)列二进制输入格式用于告诉 SAS 系统读取列二进制数或多穿 孔格式存储的数据 (五)使用 proc format 扩展的用户自定义输入格式。 四、数值变量的格式 数值变量的输入格式有 40 种之多,这里只能对常用的一些格式做一些介绍。 (一)w.d 输入格式:读取标准数据 说明: 其中 w 是给定的包括这个值域列数的宽度值; d 代表小数点右边的位数,范围是 0-31,如果是读取包含小数点的数值,则忽略 d 值; w.d 可以读取任何位置的数值,可以读取包含小数点和用科学计数法表示的值;数值的前面 、 中间或后面可以有空格,但是读取时会自动去掉空格。 如读取 23,input x 2.1;结果为 2.3; 带空格时,如读取 2 3,input x 3.;结果为 23; 读取 2.330,input x 5.3; 结果是 2.33,有小数点的数据忽略 d 值,所以是 2.33 而不是 2.330 注意这里是说有小数点就忽略 d 值,并不是有小数位才忽略 d 值,例如: 读取 2.34E5, input x 6.1;结果为 234000,而读取 234000,input x 6.1;则结果为 23400. (二)COMMAw.d 输入格式:移走数值中被嵌入的字符 COMMAw.d 输入格式将输入数值中被嵌入的字符(如逗号、空格 、$、%、破折号和圆括号)移走,而且将带有圆括号的数值作为 负数读取。 六、日期时间的格式 SAS9.0 提供了 28 种日期时间输入格式,下面仅对常用的格式作说明 。 (一)日期时间值在 SAS 中如何存储? SAS 系统将日期时间值转换为数字来存储。 对于日期,从 1960 年 1 月 1 日开始,将这一天定为 0,其他日期的 数值为 1960 年 1 月1 日和这个日期之间的天数,例如 1961 年 10 月 15 日被存储为 653(即366+31+28+31+30+31+30+31+31+30+14=653) ,2007 年 10 月 15 日被存储为17454。 而对于时间,SAS 存储时间值是从午夜开始到此刻的秒数,并将 00:00:00 定义 0,如 00:16:55 存储为 1015(即 16*60+55=1015)。 一个日期时间值存储为 1960 年 1 月 1 日午夜到这个日期时间之间的 秒数 (二)使用 SAS 日期时间输入格式 SAS 提供了 28 种之多日期、时间和日期时间的输入格式,以读取不同格式的日期 时间值。 下面是几种常用的格式,更多详细和准确的信息请参考 SAS 帮助文件。 1.DATEw. 读取 ddmmmyy 或 ddmmmyyyy 形式的日期值,其中 mmm 是月份英文 单词的 前三个字母,如 15Oct84,15Oct1984 或 15-Oct-1984,如果省略 w 则默认 是 7 个列宽, 那就只能正确读取 15Oct84,更宽的需要用户显性的指定 w 宽度 2.DDMMYYw. 读取 ddmmyy 形式的日期值,如 151084,15/10/84,15-10-84 或 15 10 84等 3.MMDDYYw. 读取 mmddyy 形式的日期值 4.YYMMDDw. 读取 yymmdd 形式的日期值 5.TIMEw. 读取 hh:mm:ss.ss 形式的时间值,如 08:25:30.7 6.DATETIMEw. 读取 ddmmmyyhh:mm:ss.ss 的日期时间值,如 15Oct84:8:25:30.7 或 15Oct1984/8:25:30.7 七、用户自定义格式 format 过程用来对字符或数值变量定义用户自己的输入格式和输 出格式。 (一)语法格式 PROC FORMAT ; EXCLUDE entry(s); INVALUE statement; PICTURE statement; SELECT entry(s); VALUE statement; 去除格式 导入数据 一、proc import 的语法格式 PROC IMPORT DATAFILE=“filename“ | TABLE=“tablename“ OUT=SAS-data- set ; DATAFILE=“filename“ 用来指定数据文件的位置,如果是 Access 则用 TABLE=“tablename“指定需要读取的数据表; OUT= 指定输出数据集的 名称; DBMS=identifier 指定导入数据表的类型;几个常用的 DBMS 选项如下 ACCESS 读取 MS ACCESS2000/2002 数据 EXCEL 读取 Excel2000/2002 数据 CSV 读取逗号分隔的文件 DLM 读取分隔符文件,需要用 DELIMITER=指明具体的分隔符 TAB 读 取 Tab 分隔的文件 REPLACE 选项 替换原来已经存在的数据集,缺省情况下是不替换,并 在 LOG 窗口中予以提示; 数据集选项 在 SAS 中,处理数据的本质是处理数据集,所以首先得掌握数据集选 项的设置,这样能更加精 细的处理数据。 一、哪里会用到数据集? (一)set 语句,合并数据集 (二)merge 语句,合并数据集 (三)data 语句,包括 data 步中用来创建数据集和 proc 步中输入和输 出数据集 (四)modify 语句,修改数据集 (五)update 语句,更新数据集 (六)open 函数,打开数据集 二、数据集选项 SAS 数据集选项有 37 个之多,共分为 5 大类,分别是控制数据集, 控制变量,控制记录,控制索引及其他。下面就一些常见的选项进行 介绍,更多详细准确的信息请参看帮助文件。 (一)控制数据集 label= 给数据集指定一个标签 index= 给数据集定义一个索引 type= 对一个特殊结构的数据集规定这个数据集的类型 pw= 对 SAS 文 件指定一个只读、写入和修改的口令 read= 对 SAS 文件指定一个只读 的口令 write= 对 SAS 文件指定一个写入的口令 alter= 对 SAS 文件指定一个修改的口令 (二)控制变量 rename= 给某些变量改名 keep= 处理或输出的数据集中保留一些变量 drop= 从处理或输出的数据集中删除一些变量 (三)控制记录 firstobs=m 从第 m 个记录开始处理 obs=n 到第 n 个记录结束处 理 where= 选择满足规定条件的记录 (四)其他选项 sortedby= 提供数据集已经被排序的信息,使用这个选项可以加快 某些过程的处理速度,如 sort, sql 以及 by 语句等。 在数据步中整理数据集 复制数据集 最简单的复制数据集 data target; set source; run; (一)只复制部分变量可以写为: data target (keep=name sex v1 v2); set source; 或者 data target (drop=v3 v4) ; set source; 还可以是用到 keep 与 drop 语句,例如 data target; set source; keep name sex v1 v2; 或 data target; set source; drop v3 v4; (二)修改变量则使用 rename=选项,例如 data target (rename=(v1=v5) set source; 或者将数据集选项加在 source 数据集之后也是等价的。 (三)添加变量时直接在 data 步中加入变量, data target; set source; y=v1+v2; (四)复制部分记录可以使用 firstobs 与 obs,选取从某一段连续的记录,例如 data target; set source (firstobs=5 obs=10); 很多情况下是有条件的选择部分记录,则需要用到 where 选项,例如 选取男性名单 data target; set source (where=(sex=男); 或者用到 where 语句与 delete 语句,例如: data target; set source; where sex=男; 或 data target; set source; if sex=男 then delete; (五)修改记录中某个变量值,例如 John 的性别写错了,将其改 过来 data target; set source; if name=John then sex=男; 如果要将所有记录的 v1 值都修改为 17,则只要将条件取消,例 如 data target; set source; v1=17; 二、修改数据集 修改数据集的实质就是复制数据集,只是源数 据集和目标数据集是同一个数据集而已,例如 data target; set target; 所以上面介绍的复制数据集的方法可以用来修改数据集。 三、操作多个数据集 (一)纵向连接数据集 纵向连接即是记录的合并,即将很多个数据集的 记录合并到一个新的数据集,合并之后新的数据集记录总数等于各源 数据集之和。纵向连接按记录叠加的次序不同,有分为串联式连接与 交叉式连接。 1.串联式连接 串联式连接很容易理解,就是源数据集中的记录一个一个的按 set 语 句中数据集的顺序合 并成一个新的数据集。 2.交叉式连接 交叉式连接则是借助 by 语句,记录的连接是按照 by 语句中变量或变 量组来一个一个进行 的,机制跟上面讲的一样。 (二)横向合并数据集 横向合并即是变量的合并,按照记录号的顺 序或者某个关键变量的数值将不同的数据集中的不同变量合并在 一起组成新的数据集,新数据集中的变量数是所有源数据集中不 重复变量的总 和。横行合并分为一对一合并和匹配合并。 在 data 步和 proc 步某些操作中,当需要用到 by 语句时,一般 都需要源数据集按照 by语句中的变量事先排序,这里就需要用 到 proc sort。 (一)语法格式 PROC SORT ; BY variable-1 variable-n; proc sort 常用的选项: 删除重复记录的选项noduprecs、nodupkey 删除重复的 by 变量记 录。 转置 proc transpose proc transpose 将输入数据集的行变成列,列变成行,并将结果保存在 输出数据集中。 (1)语法格式 PROC TRANSPOSE ; BY variable-1 variable-n ; COPY variable(s); ID variable; IDLABEL variable; VAR variable(s); option-list 1)数据集选项 data=与 out= out=省略时,自动命名数据集 DATAn 2)命名选项 prefix=name 规定一个前缀来构成新变量的名字,例如规定 prefix=V,则新 变量被命名为 V1, V2, Vn,该选项缺省时,则新变量命名为 COL1, COL2,COLn NAME=name 规定在输出数据集中的一个变量名字,该变量的值是被转置的 原数据集的变量, 该选项缺省时,则该变量自动命名为_NAME_ LABEL=name 规定在输出数据集中的一个变量名字,该变量的值是被转置的 原数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版知识产权转让担保合同模板
- 2025版短期借款合同
- 二零二五年度海上船舶物料供应合同范本
- 二零二五年度生物医药研发实验室租赁合同
- 二零二五年度家具租赁合同范本
- 二零二五房地产居间合同:联合开发项目居间服务
- 二零二五年抹灰施工班组劳务分包工程结算合同
- 2025版个人房屋维修基金贷款合同模板
- 二零二五年度智能电网建设合同补充条款
- 二零二五年度古建筑修复工程合同书下载
- GB/T 45997-2025科技成果五元价值评估指南
- 转让网约车合同协议书范本
- 2022年CSCO软组织肉瘤诊疗指南
- 自然辩证法学习通超星期末考试答案章节答案2024年
- 合伙人解除关系承诺书
- 安全生产基本知识(乡镇办人员)培训课件
- 银行安全保卫工作会议记录
- 建筑八大员考试:试验员真题模拟汇编(共945题)
- 玩具厂作业指导书(含管理制度、规程)
- 禁用物质管理制度
- GB/T 24293-2009数控恒温水嘴
评论
0/150
提交评论