讲义3数据管理.docx

上传人:b****1 文档编号:1167792 上传时间:2023-04-30 格式:DOCX 页数:12 大小:673.46KB
下载 相关 举报
讲义3数据管理.docx_第1页
第1页 / 共12页
讲义3数据管理.docx_第2页
第2页 / 共12页
讲义3数据管理.docx_第3页
第3页 / 共12页
讲义3数据管理.docx_第4页
第4页 / 共12页
讲义3数据管理.docx_第5页
第5页 / 共12页
讲义3数据管理.docx_第6页
第6页 / 共12页
讲义3数据管理.docx_第7页
第7页 / 共12页
讲义3数据管理.docx_第8页
第8页 / 共12页
讲义3数据管理.docx_第9页
第9页 / 共12页
讲义3数据管理.docx_第10页
第10页 / 共12页
讲义3数据管理.docx_第11页
第11页 / 共12页
讲义3数据管理.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

讲义3数据管理.docx

《讲义3数据管理.docx》由会员分享,可在线阅读,更多相关《讲义3数据管理.docx(12页珍藏版)》请在冰点文库上搜索。

讲义3数据管理.docx

讲义3数据管理

数据管理基础

1.数据步运行机制

DATA数据库标识.数据集名;(标志数据步的开始,命名将要创建的SAS数据集。

如省略库标识名,则默认为work临时库。

infile“外部文件的所在位置及名称”;(读入外部数据,必须出现在INPUT语句之前。

另外的途径是读取cards后面的数据块。

input变量名[$开始列-结束列.小数位]...;

例:

inputname$1-6score7-10.2@@;

input后列出变量名及格式名,通常用来读入各种各样写法的日期。

注意日期是用数值存储的,若要显示则要用format语句,指定特殊的日期输出格式。

数据步执行过程:

运行下面三则程序分析数据读取过程:

2.attrib语句指定变量属性

变量属性有:

字符型或数值型:

input语句中字符型变量名后面要加$符号

变量标签(lable):

最长40个字符

存储长度(length):

数值型数据一般长度为8个字,字符型变量默认为8个字符

输出格式(format):

指定如何显示变量值

输入格式(informat):

指定如何把外部数据转换为SAS数据

attrib变量名属性=属性值变量名属性=属性值……;(可以指定多个变量的属性,也可为一个变量同时指定多个属性)

3.array数组读取数据

定义格式:

array数组名(维数说明)数组元素名列表(初始值表);

例如:

arraytest(3)mathChineseEnglish(0,0,0);

说明:

数组名为一个合法的SAS名字且不能与同一数据步中的其它变量重名;

“维数说明”说明元素个数,这时下标从1开始。

“数组元素名列表”列出这个数组的各个元素实际代表的变量名,它们之间用空格隔开;

“初始值表”给数据中各元素赋初值,按顺序对应;如果省略初始值,这时初始值为相应数组元素的值(如果数据元素没有值,则初始值为缺失值);

定义二维数组,只要在维数说明中指定用逗号分开的两个下标界说明,如:

Arraytable(2,2)x11x12x21x22;

字符型数组在数组名(维度说明)后面加$符号,如:

arrayname(3)$10childfathermother;

4.set语句实现数据的复制与修改

Set语句可以实现数据集的复制,与其它语句配合使用可以实现对数据集的修改。

(1)与if语句配合使用

例:

将数据集work.c9501复制为数据集c9501a,并把超过100分的语文成绩都改为100分。

程序中有一个隐含循环,直到读取输入数据集的最后一个观测。

(2)与droop或keep语句配合使用

keep语句指定复制数据集时要保留的变量,drop语句指定复制数据集时要删除的变量。

例:

复制数据集c9501生成c9501b,但只包含name和avg两个变量。

(3)与子集if语句配合使用

根据指定的条件,取出数据集的某些行组成的子集。

例:

只将数据集c9501中数学90分以上,语文100分以上的学生观测取出生成数据集c9501c

(4)与数据集选项配合使用

功能:

用set语句引入数据集时可以给引入的数据集加选项,选项放在数据集名后面的括号内。

选择包括:

Keep=,指定要保留的变量;

Drop=,指定要删除的变量;

Obs=,表示读取观测到指定的序号为止;

firobs=,表示从指定的序号的观测开始往后读取。

例:

下面的程序生成一个大数据集huge,然后用数据步从中复制了前100行和前两个变量。

5.数据的拆分与合并

(1)数据拆分

用set语句与output语句联合使用,可以根据某一原则将一个数据集拆分成几个不同的数据集。

例:

把数据集c9501中的所有男生的观测放到数据集c9501m中,所有女生的观测放到数据集c9501f中。

(2)数据纵向合并

有时需要将几个数据集上下纵向合并起来,生成一个大数据集,可以在set语句后列出要合并的数据集名。

如果要合并的数据集中含有的变量名都相同,则新数据集不产生新变量;如果不同数据集含有不同的变量名表,则新数据集包含所有数据集中所有不重复变量,其中原数据集没有的变量将赋予缺失值。

例:

建立score1和score2数据集,并合并成score数据集。

有时在set语句的每一个数据集名后面加一个括号,里面写上in=变量名,此变量可以用来指示每一个观测原来来自于哪一个小数据集,变量取值为1表示来源于此数据集。

例:

程序3.5-1把c9501数据集按男、女拆分成了两个数据集c9501m和c9501f并摒弃了性别变量,下面来上下连接这两个数据集并恢复性别变量信息。

(3)数据横向合并

a)一对一合并(无by语句合并)

不使用by语句时,merge将一个数据集中的第一个观测值和另一个数据集中的第一个观测值合并,依此类推。

在合并时,若某一数据集已没有观测,则其相应变量值为缺失值。

如果合并的各个数据集含有相同变量,则在合并后新数据集中此变量只出现一次,其值为merge语句数据集列表中最后一个数据集中的数值。

例:

将新数据集num与之前建立的数据集score横向合并。

b)匹配合并(带by语句合并)

将原来自于不同数据集中具有至少一个变量是共同变量(匹配变量),按照匹配变量取相同数值的观测横向合并起来。

要求每个数据集事先必须按照匹配变量排序。

其它原则同前。

例:

将person和language两个数据集按number变量横向合并。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2