关第5行即为 REPEATING DATA命令。它本身需要定义重复操作的起始点, 另外还需要三个后续的子命令:本行中的 STARTS的用途是指示重复读入数 据段的起始位置。在本例中重复读入的起始位置是第16列。注意此命令尚未 完成,因此没有句号。 第6行是 REPEATING DATA命令所需的第一个子命令 CCURS,其功能 是指示那个关于每条记录中有多少段需要重复读入的数组的变量。在本例中 变量 NUMSPELL就是这样一个变量,它可以告诉程序需要重复多少次以便 将本条记录的数组读完。本行命令的后面是 REPEATING DATA命令所需的 第二个子命令 MLENGTH,定义每次重复读入的数据长度。 关第7行是 REPEATING DATA命令所需的第三个子命令ATA,它的功能 是指令在分组读人的数段中包含的变量名及其数据所在位置。在本例中,变 量DURA在每段中的1至4列,变量 EVENT在每段中的第6列。 以上程序中没有包括将输出文件存成另一新文件的命令,如经在SPSS数据窗 口检查新建数据没有差错,可以直接在文件菜单(Fle)中用 Save as命令将 其存成新的数据文件。为了方便SPSS软件调用此数据,最好在 Save as窗口 的左下部选择SPSS系统数据文件(即文件扩展名为.sav的文件类型)作为 存取格式 表13-10 例2的输出结果 AGE RACE EDU NUMSPELL DURA EVENT 333 555544333444 0100 40 2 45 2 2122333 1389 304 10110 3.例3:对风险期案例的条件性选择及统计 例3数据结构及所需完成的工作 *本例使用例1(例1与例2的输出数据如存成SPSS系统文件是相同的)的输 433
出数据作为自己的输人数据。 关本例的目的是示范如何根据某些信息来控制数据规模,以及如何取得以调查 样本每条案例为口径的汇总统计。 κ假设例1数据是关于孩子居所安排的调查结果。其中变量DURA测量的某个 孩子在某种居所中生活的时间长度(日数)。根据这套数据,研究人员可能想 进一步知道:在头1000日当中,这个孩子在一个地方的平均生活日数应该是 多少。或者,在头1000日当中这个孩子会更换多少次居所。显然这样的数据 更容易在不同孩子之间进行比较。还有,研究人员可能还想了解,在这个调 查样本中,在一个地方生活日数的最大值、最小值以及日数总和是多少。实 际上,这是一个在数据案例为口径(以孩子在某种居所生活的情况为一条记 录)的数据中汇总以调查样本案例为口径(以每个孩子为一条记录)的统计 问题。为了解决这个问题,我们要用SPSS软件中的 aggregate命令(意为汇 总)。 表13-11 例3的程序命令 1 GET FILE=C: \EHA SPSS\EX1. SAV 3 IF ID NE LAG (ID, 1) ACDURA=O 4 COMPUTE ACDURA=ACDURA+DURA 5 IF ID NE LAG(ID, 1) ORDER=O 6 COMPUTE ORDER=ORDER+1 7 LEAVE ACDURA ORDER LIST VAR=ID ORDER DURA ACDURA I0 SELECT IF (ACDURA LE 1000) 11 LIST VAR=ID ORDER DURA ACDURA 12 13 AGGREGATE OUTFILE=* /BREAK=ID 15 /AVGDURA=MEAN(DURA) MAXDURA=MAX (DURA) 17 /MINDURA=MIN(DURA) 18 /TOTDURA=SUM(DURA) /N=NU (DURA 20 LIST VAR=ALL 注:本书所附磁盘提供此程序,文件名为EX3.SPS。并且提供所需的输入文件 Ex1.S^V。实际上EⅪ1.SNV即为例1程序运行时所建立的SPSS系统数据文件 主编提示:利用例1和例3的程序所示范的 YRMODA、 SYSMIS函数和LAG函数,稍 加修改便可以改造第三类数据