第二章数据文件的管理(上)(医学统计之星:张文彤)最后一次更新时间:2.1建立与保存数据文件-File菜单2.1.1新建数据文件2.1.2.1直接打开2.1.2.2使用数据库查询打开2.1.2.3使用文本导入向导读入文本文件2.1.2打开其他格式的数据文件2.1.3保存数据文件2.1.4File菜单中的其他条目2.2编辑数据文件2.2.1定义新变量2.2.1.1直接定义新变量2.2.1.2从原有变量计算新变量-Transform菜单2.2.2数据的录入2.2.2.1直接录入2.2.2.2数据录入技巧2.3进一步整理数据文件-Data菜单不言而喻,一切统计分析都是以数据为基础的,因此统计软件的数据管理能力非常重要。SPSS以其豪华的界面为依托,为用户提供的便捷的数据管理功能,下面我们就来具体看一下。§2.1建立与保存数据文件和大多数应用软件相同,SPSS中数据文件的管理功能基本上都集中在了File菜单上,该菜单的组织结构和WORD等也极为相似,因此这里我们只介绍比较有特色的几个菜单项。SPSS10.0有三个主要窗口界面:数据管理窗口、程序编辑窗口和结果浏览窗口;另有两个不常用的窗口:结果草稿浏览窗口和VBs脚本语言编辑窗口。他们共享许多菜单项,如File菜单就大部分相同,这里介绍的许多内容在五个窗口中都是通用的。2.1.1新建数据文件如果你正从头开始进行一个新的课题,刚刚把数据收集上来,要做统计分析,自然需要新建一个数据库,然后将所有的数据从纸上请到计算机里。在SPSS中,新建一个数据库容易的不得了--已经到了什么都不用做的地步!是这样,当你进入SPSS系统时,系统就已经生成了一个空数据文件,即你看到的空白的数据管理界面。你只要按自己的需要定义变量,输入数据然后存盘就是了(这些操作马上会讲到)。2.1.2打开其他格式的数据文件凡是做过数据输入工作的人都知道:这活又费眼睛又累人,出错太多了还要挨批评,非常影响个人的光辉形象。算了,还是在有限的经费里划几百美元出来雇个打字小姐吧(怎么用美元?因为我请了个老外!)。可是非常不幸,该同志只会用EXCEL2000(又是一个被微软成功洗脑的家伙),数据现已输好,怎么转成SPSS数据文件呢?没关系,SPSS提供了以下几种方法来打开其他格式的数据文件。2.1.2.1直接打开SPSS现在可以直接读入许多格式的数据文件,其中就包括EXCEL各个版本的数据文件。选择菜单File==Open==Data或直接单击快捷工具栏上的“”按钮,系统就会弹出OpenFile对话框,单击“文件类型”列表框,在里面能看到直接打开的数据文件格式,分别是:SPSS(*.sav)SPSS数据文件(6.0~10.0版)SPSS/PC+(*.sys)SPSS4.0版数据文件Systat(*.syd)*.syd格式的Systat数据文件Systat(*.sys)*.sys格式的Systat数据文件SPSSportable(*.por)SPSS便携格式的数据文件EXCEL(*.xls)EXCEL数据文件(从5.0版~2000版)Lotus(*.w*)Lotus数据文件SYLK(*.slk)SYLK数据文件dBase(*.dbf)dBase系列数据文件,(从dBaseII~IV)Text(*.txt)纯文本格式的数据文件data(*.dat)纯文本格式的数据文件选择所需的文件类型,然后选中需要打开的文件,SPSS就会按你的要求打开你要使用的数据文件,并自动转换为数据SPSS格式。也许有视力好的朋友会注意到右下方除了“打开”和“取消”两个按钮外,中间还有一个“Paste”按钮,该按钮在SPSS的大多数对话框中都存在,是用于自动生成SPSS程序的,我们以后会专门讲解该问题。2.1.2.2使用数据库查询打开SPSS可以直接打开许多类型的数据文件,但这并不是说它可以打开所有类型的数据文件(废话),比如FoxPro3.0以上版本的*.dbf文件就不能直接打开(有兴趣的话你可以试试)。为此,SPSS还提供了另一个适用范围更广、但使用上较为专业的数据接口--数据库查询。实际上,SPSS在这里使用的是一种叫ODBC(OpenDatabaseCapture)的数据接口,该接口被大多数数据库软件和办公软件(如MSOffice)支持,通过它,应用程序可以直接访问以结构化查询语言(SQL)做为数据访问标准的数据库管理系统。由于SPSS10.0可以直接打开EXCEL所有系列的数据文件,因此数据库查询接口的用处不是很大。但是,在9.0及以前的版本中,该查询仍是直接打开EXCEL95、97及2000数据文件的唯一办法。ODBC数据引擎是独立与各种应用软件,直接安装到Windows系统中的,因此你所用的系统中ODBC所支持的数据类型取决于所安装的ODBC引擎的情况。还好,大多数支持该接口的软件都会在安装光盘上附送该引擎的安装文件(如MSOffice)。不过有一点要提醒大家,许多机器的OBDC数据引擎安装有问题(尤其是D版),在SPSS中使用它往往要死机。选择菜单File==OpenDatabase==NewQuery,系统会弹出数据库向导的第一个窗口,其中会列出你使用的机器上已安装的所有数据库驱动程序,选中所需的数据源,然后单击下一步,向导会一步一步的提示你如何做,直至将数据读入SPSS。我原来准备举一个具体例子,但后来发现不同版本的ODBC引擎所弹出的对话框并不相同!不仅如此,不同的数据驱动程序其对话框也各不相同!比如说,有的需要你的LoginID和Password,有的又不需要,因此我这里就不再讲了。由于它使用上太专业(尤其在10.0版中,9.0版还好些),如果确实要用,请找一个对数据库接口比较熟的人来帮你。2.1.2.3使用文本导入向导读入文本文件选择菜单File==ReadTextData,系统就会弹出OpenFile对话框,对!和前面的情况完全一样,只是文件类型自动跳到了Text(*.txt)。实际上,该功能在SPSS中已被整合到了OpenFile对话框中之所以在菜单上保留该条目有两个原因:1.读入纯文本的情况非常普遍,放在这里更加醒目;2.为了和SPSS老版本的使用上保持兼容。例2.1现有一数据文件以纯文本的形式存为“c:\Li2_1.txt”,且第一行为变量名,请将其读入SPSS。解:在OpenFile对话框选中相应的文件名并单击“确定”,系统会自动启动文本导入向导对话框如下:在SPSS10.0中,该向导并没有重新设计,因此仍然有问题被截断无法显示完的情况出现。可以看到该向导共分6步,这是第一步。中部为一对单选按钮,问题为“你的文本文件和预定义格式相一致吗?”,下方为按预定义格式读入的数据文件的预览。显然,SPSS的预定义格式并没有正确识别该文件。因此选择“No”并单击“下一步”,系统弹出向导的下一个对话框如下:最上方的问题是“你的变量是如何排列的?”,下面的选项分别为Delimite(用某种字符区分)和FixedWidth(固定宽度),一般都是Delimite,第二个问题是“变量名包括在文件最前面了吗?”,我们当然选“Yes”,单击“下一步”,系统弹出第三个对话框:最上方的句子意为“第一条记录从第几行开始?”,右侧可以输入行数。由于我们所用的数据第一行为变量名,因此这里输入2。下面的问题是“你的记录是怎样存储在文件中的?”。可以是“每一行代表一条记录”,或者“每**个变量代表一条记录”,数据一般都是第一种情况。下一个问题是“你想导入多少条记录?”,可以是“所有记录”、“前**条”或“随机导入**%的记录”。一般也选前者。单击“下一步”,第四个对话框如下:我这里写的非常详细,但实际使用中你可以不管大多数问题,因为SPSS一般都能自动正确设置。最上方的问题为“变量间用的是哪种分隔符?”,可选的有Tab键、空格、逗号、分号或自行定义的其他符号。本数据采用的是空格,可见系统已经自动识别并选择了空格,而下方的数据预览窗口显示出了正确的数据读入情况。单击“下一步”,第五个对话框如下:上方的提示为“定义在数据预览窗口中所选择的变量。”。顾名思义,在这个对话框中你可以在数据预览窗口中选择某一列变量,然后更改其变量名和类型。当然,在这里我们不用这样做,直接单击“下一步”,系统弹出文本导入向导的最后一个对话框如下:最上面的问题为“你愿意保存这次的文件(读入)格式设置以备下次使用吗?”,第二个问题为“你是否愿意将以上操作粘贴为SPSS语句?”,一般这两个问题我们都可以不管。单击“完成”,系统最终成功的读入了Li2_1.txt。2.1.3保存数据文件在对数据做了修改后,保存数据文件是必不可少的工作之一。选择菜单File==Save,如果数据文件曾经存储过,则系统会自动按原文件名保存数据;否则,就会弹出和选择Saveas菜单时相同的Saveas对话框。里面可以保存的数据类型和可以打开的几乎一样多,选择合适的类型,确定就是了。Save命令的快捷键为^S,如果你曾经领教过Windows死机的巨大潜力,那么你一定会同意习惯性的随手按^S至少不能算是一个坏习惯。如果你准备将数据存为SPSS以外的其他类型,要注意有些设置可能会丢失,如标签和缺失值等。尤其是缺失值,如果想存的数据格式不支持缺失值,那你的数据可能会变的面目全非。2.1.4File菜单中的其他条目【DispDataInfo】该菜单项用于显示数据的基本信息,选择它后会弹出非常类似于打开文件的一个对话框用于选择数据文件,选择好后按OK,系统就会在结果窗口中列出所选数据的基本情况,如建立时间、标签设置、记录数、变量设置等。【ApplyDataDictionary】即使用数据字典,该功能使你可以直接在新数据集中套用以前定义好的变量设置(格式、标签等,但不包括数据类型),举个例子吧:请打开Li1_1.sav文件,将变量x的长度从8改为4,标签删掉,然后选择菜单File==ApplyDataDictionary,在文件对话框中选择Li1_1.sav并按OK(即将Li1_1.sav的变量设置按相同变量名一一套用在现在的数据集上),怎么样?一切都变回去了吧。【CacheData】建立数据缓冲区。以前SPSS每执行一条命令都会重新读取所需的数据,如果是从远程用SQL调用数据库,这会非常的费时。现在使用CacheData,可以将数据全部读入暂存盘,建立活动数据的缓冲区。大大加快处理速度。不过我特意试了一下,如果是处理本机数据的话,该命令对速度的提升不是非常明显:(。【Print和PrintPreview】这两个菜单项用于将数据管理窗口中的数据以表格的形式打印出来,其中PrintPreview是新增加的,使用上和WPS2000的打印预览非常相似(其实用的是同样的程序),不过和SPSS结果的打印程序一样,用SPSS直接打印数据非常的浪费纸张,用不用你自己决定吧。【StopProcessor】用于停止执行当前的SPSS命令。由于SPSS处理速度非常的慢,如果你正在对一个大型的数据执行统计命令,等了半天都没有结束,此时你的另一半约你逛街的时间又要到了,可是你的结果还没有存,执行命令时又存不了,怎么办呢?试试这个命令吧。并非所有的命令都可以喊停的,许多数据库操作命令(计算变量,合并等)好象就停不了。§2.2编辑数据文件在SPSS中,数据文件的编辑、整理等功能被集中在了Data和Transform两个菜单项中,这两个菜单的内容如下所示:Data菜单项Transform菜单项下面我们将根据其功能来分别讲述。2.2.1定义新变量2.2.1.1直接定义新变量大多数情况下我们需要从头定义变量,在SPSS10.0中,定义变量的操作界面和FoxPro等数据库非常相似,只需单击左下方的VariableView标签就可以切换到变量定义界面开始定义新变量。如Li1_1.sav的变量定义如下所示:以变量x为例:变量名为x,类型为Numeric,宽度为4,小数位数2位(因小数点还要占一位,故整数位只有一位),变量标签位为“血磷值”。右侧在图中未