Quantum软件培训手册_第1页
Quantum软件培训手册_第2页
Quantum软件培训手册_第3页
Quantum软件培训手册_第4页
Quantum软件培训手册_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年5月29日Quantum软件培训手册文档仅供参考Quantum

培训手册1.QUANTUM介绍1.1.QUANTUM主要功能1.2.QUANTUM运行过程1.2.1.编译Quantum程序1.2.2.装入C编码1.2.3.读入数据1.2.4.产生表格1.3.QUANTUM处理数据步骤2.QUANTUM安装2.1.运行QUANTUM最低要求2.2.QUANTUM目录结构2.3.QUANTUM安装步骤3.数据3.1.基本元素3.1.1.数据常量3.1.2.数字3.1.3.变量和数组3.2.QUANTUM数据格式3.3.数据结构4.轴(AXES)4.1.轴定义4.1.1.特殊条件4.2.COL语句4.2.1.处理’don’tknows’类型答案4.2.2.col语句中的条件4.2.3.col语句中其它项5.表格5.1.TAB语句5.2.AND语句5.3.组合表格5.3.1.水平或垂直组合5.3.2.增加表格5.3.3.一个表格的数据除以另一个表格的数据5.4.一页打印多个表格6.数据检查6.1.对HOLECOUNTS进行加权7.表格格式7.1.QUANTUM制表区的层次7.2.定义运行控制条件7.3.在A,SECTBEG,FLT和TAB语句中的选项7.3.1.输出选项:7.3.2.数据选项7.4.表格标题7.4.1.针对T统计表中的标题7.4.2.标题下划线7.4.3.表格脚注7.4.4.在页底部打印文本8.产生列标题8.1.自动设置8.2.手动设置9.复杂元素定义9.1.计数产生的元素9.2.子标题10.表格管理10.1.表数目10.2.页数目10.3.FLT过滤语句10.3.1.全局过滤语句10.3.2.命名过滤语句10.3.3.过滤语句嵌套11.处理数字11.1.VAL语句11.1.1.检测是否等于算术值11.1.2.检测在算术值范围11.1.3.组合两种检测11.1.4.统计缺失值11.2.FLD语句11.3.BIT语句11.4.比较BIT语句和FLD语句11.5.频数分布(FREQUENCYDISTRIBUTIONS)12.统计功能12.1.产生合计数12.2.其它统计语句13.生成和调用文件13.1.生成和调用语句13.2.生成和调用不同的语句13.2.1.列符号参数13.2.2.编码符号参数13.2.3.给符号参数设置全局值

1.Quantum介绍1.1.Quantum主要功能Quantum主要用来从市场研究的一组问卷表中获取有价值的信息。它是一种很完善又很灵活的计算机语言,语法结构和英语相似。Quantum的主要功能有:Ø检查和确认数据Ø编辑和校正数据Ø生成不同类型的数据打印和报告文件Ø生成新的数据文件Ø对数据可重新编码和生成新的变量Ø产生表格Ø执行统计计算1.2.Quantum运行过程Quantum从磁盘读入数据,这些数据能够从CATI、CAPI、WEB获得或者就是人工输入的,用Quantum语言写脚本定义好要完成的任务,最后运行脚本处理数据得到输出结果。Quantum运行程序一般按以下几步:1.编译Quantum程序,检查语法并转为C编码(Compilation)。2.把C编码转为C程序(DatapassProgram)。3.用第2步产生的程序读入并处理数据,改正了错误数据或从数据文件中增加新数据后,能够直接从这一步开始往下处理。4.对数据进行加权(可选项)。5.累计每一单元的数据。6.处理数据(可选项)。7.输出表格。Quantum运行命令格式是:Quantum[options][programfile][datafile][tablesfile]能够不带options值运行所有过程,必须有programfile和datafile,如果没有给出tablesfile,则所有表格输出到tab_中。

Quantumprogramfiledatafile[tablesfile]Options的值主要有:

-c编译Quantum程序,转为C编码。

-l把C编码转为C程序

-r读入数据进行处理

-o产生表格1.2.1.编译Quantum程序在所有Quantum运行中第一步都是检查程序语法错误并转为C编码,我们称这为编辑(compilation),单独运行这一步命令格式为:quantum–c[programfile]产生主要输出文件有:out1

列出检查内容,如果有错,Quantum在这个文件中标记出来。colmap

列出所有列和编码。.1.2.2.装入C编码编译成功后,Quantum把产生的C编码转为程序,如果没有问题就读入数据,我们称这为(datapassprogram),DOS下单独运行这一步命令格式为:quantum–ldatafile产生许多中间文件,运行最后被删掉。DOS下产生主要输出文件有:qtm_ex_.exe

datapass程序。1.2.3.读入数据一般情况下,Datapassprogram自动读入并处理数据,但如果修改了数据或增加新的数据到数据文件中,能够用下面命令重新运行datapass而不用再编译和装入C编码。quantum–rdatafile产生文件有:clean.q

Cleandatafiledirty.q

Dirtydatafilehct_

Holecountoutputlst_

Frequencydistribution(list)outputout2

Listingofrecordsfailingwriteandrequirestatementspunchout.q

Recordswrittenoutbyrequiresum_

Sortedsummaryofdatapasserrors1.2.4.产生表格如果修改了表格的版面而没改变表格单元中的数据(如改变小数点位置,用特殊字符代替0值),则只须运行第一步编辑(compilation)和输出表格这一步:quantum–o[program_file]产生文件有:out3

累积输出概要tab_

表格1.3.

Quantum处理数据步骤Quantum程序分为两个部分:编辑区(editsection)和制表区(tabulationsection),编辑区检查和校正数据,产生新的数据文件和变量等;制表区做表和进行统计计算。

2.Quantum安装2.1.运行Quantum最低要求运行Quantum最低需求是:lPC机上的Intel处理器类型:–anyPentiumProcessor–i486(80486family)–i386(80386family)l操作系统:–MicrosoftWindows95orMicrosoftWindows98.–MicrosoftWindows3.1orWindows3.11forWorkgroups(referredtoas3.xinthisguide).–MicrosoftWindowsNT4.0(forIntel-basedsystems).–MicrosoftWindows(forIntel-basedsystems).–MicrosoftMS-DOS3.3orlater(withHIMEM.SYSv2.78orlaterandatleast4MBofavailableXMSmemoryconfigured).l硬盘至少6MB可用空间。l内存最小8MB。l标准PC并行打印机接口(在使用之前,一个dongle必须接到并行口,起加密作用,未授权的用户不能使用。l安装适合的dongle驱动程序。l单独安装C编译器。2.2.Quantum目录结构qtime/bin

SpssMR公用程序qtime/qt/qttest

测试安装的一个例子qtime/qt/v5.7/bin

Quantum所带的程序qtime/qt/v5.7/doc

当前版本的信息qtime/qt/v5.7/include

Quantum运行时读取的文件qtime/qt/v5.7/lib

运行时库文件2.3.Quantum安装步骤3.数据3.1.基本元素在Quantum中有三种基本的元素,它们分别存贮在三种变量中:数据常量(dataconstants)数据变量(datavariables)整数(integernumbers)

整型变量(integervariables)实数(realnumbers)

实型变量(realvariables)3.1.1.数据常量单个常量(individualconstants)l一列中的一个或多个编码,用’codes’表示。编码范围是-&和空值(blank)。例如:Red

1Yellow2Blue

3Green

4Black

5White

6如问题是”你最喜欢的颜色”,最喜欢颜色是”Blue”,则对应列是编码’3’。l多选题(multicodes)在一列中对应有多个编码,如’236’。Quantum不关心多编码的输入顺序.如是连续的编码,则能够在第一和最后一个编码间用’/’表示。’1/3’代表’123’’&/4’表示’&–01234’‘4/&’表示‘4567890-&’数据常量串(stringsofdataconstants)一个列区间包含的编码串,用$codes$表示。这里每一列只含一个编码。如$123$。在表示问卷序列号或问题答案要用多于1位的编码表示时用数据常量串。3.1.2.数字Quantum一般打印10个数字,超出10个输出为*号。如”12345678.12”输出1位小数显示为”12345678.1”,输出2位小数则显示为*号,但能够用scale=来调整。l整数(integernumbers)Quantum能处理整数范围为-1,073,741,824到+1,073,741,823,能处理6位有效数,超出6位四舍五入。数字型问题需要用数字来回答,如”你家里有几个小孩?”l实数(realnumbers)包括有小数点的数字,在小数点两边至少有1位数字,也是处理6位有效数,超出6位四舍五入。一般有单精度,如需要双精度用a语句中dp选项来定义。3.1.3.变量和数组数据变量(datavariables)²在C数组(carray))中的单个数据变量,用cnumber表示²在C数组区间中的数据变量,用c(start_pos,end_pos)表示²定义数据变量,用datavar_namesizes表示²在C数组中最大有1000个数据单元,每个单元称C变量(c-variables);每次处理完一个记录时,清空数据单元读下一记录;每一单元对应一列(column)。整型变量(integervariables)²定义整型变量,用intvar_namesizes表示,调用用name[cell_number]。²整型变量在运行开始赋为0,在读入不同记录时不会被清空。²Quantum提供一个有200个整型变量的整型数组(tarray),数组中每一位可含一个整型值。²数据变量和整型变量的区别是:如6000要占用4列用4个数据变量来表示,而用整型变量则只要一个来表示。实型变量(realvariables)²定义实型变量,用realvar_namesizes表示,调用用name[cell_number]。²实型变量在运行开始赋为0.0,在读入不同记录时也不会被清空。²Quantum提供一个有100个实型变量的实型数组(xarray),数组中每一位可含一个实型值。²非零实变量值在运行结束时不自动输出,可用report语句输出。²在C数据中读实数,用cx(start_pos,end_pos)表示。3.2.Quantum数据格式Quantum有三种类型的记录:ordinaryrecordmulticardrecordmulticardrecordwithtrailercardsOrdinaryrecordØQuantum数据自动从数据文件中读到Carray中,一次一条记录。ØOrdinaryrecord的数据是一串编码或数字,最大有32767个字符。Ø对于ordinary类型记录,从Carray的单元1开始向前存放。MulticardrecordØMulticardrecord:当数据从punchcard中得来,且每一个记录不止80列,这些数据就会放在不同卡片上,Quantum给每一条记录安排一个序列号(serialnumber),每一张卡有一个卡类型号(cardtype),根据记录序列号和卡类型号Quantum就能够决定哪些数据属于哪一个被访问者。ØQuantum每个记录最多有327张卡。这里处理的卡每张卡最多100列。Ø对于multicard类型记录,一般card1放在c101-c200,card2放在c201-c300,如此类推。如果是80列的卡,card1读入到c101-c180,card2读入到c201-c280等,c181-c200,c281-c300等为空,这个Carray假设为10行,每行100列。则第2张卡的第30列用c230来表示,而c867表示第8张卡的第67列。MulticardrecordwithtrailercardsØMulticardrecordwithtrailercards:有些记录含有重复的数据,我们把重复的数据的每一组放到一张独立的卡中,Quantum给这些含有相同问题的卡安排了一个卡数目(cardnumber),这些卡被称为:trailercard。Ø如在一个购物调查中,针对被访问者光临的每个商店,都是一列相同的问题。那么对每个商店设一张独立的卡。假设被访者到过5个商店,我们把被访者基本信息放在card1中(cardtype为1),商店的信息放在card2中(cardtype为2),那么这条记录包含5张卡类型为2的卡,一共含6张卡。Card1的层次(level)高,card2的层次低。3.3.数据结构所有处理multicardrecord的程序必须包含一个struct结构语句,除非记录类型是trailercards且在读入和制表时用到层(level)的功能,在这种情况下能够选择用struct语句或用level文件,如果没有struct语句也没level文件,则当作ordinaryrecord对待。定义数据结构的语句格式是:Struct;optionsOptions有多种:记录类型(recordtype)Struct;read=nn=0ordinary记录,数据从c1开始往上放在carray中。缺省值。n=2muiticard记录,每张卡记录读到卡类型对应的行中,如card1在c(101,200),card2在c(201,300)中,如此类推。n=3忽略卡类型,一次读入multicard记录记录长度(recordlength)Struct;reclen=n定义长度大于100列的记录长度,也就是能读入到carray中的最大字符数。一般缺省为reclen=100.如果是multicardrecord输出,c101到c(100+reclen),c201到c(200+reclen)等记录输出。例如:struct;read=2;reclen=60假设有2张卡,则输出c101-c160和c201-c260.序列号(serialnumber)Struct;ser=c(m,n)每一记录的序列号在carray中的位置。例如:对于ordinaryrecord,序列号在列1到5:struct;read=0;ser=c(1,5)对于multicardrecord,序列号在列1到5:struct;read=2;ser=c(1,5)注意这里multicardrecord中序列号用的是实际的列号而不是带卡类型的列值来表示。卡类型(cardtypelocation)Struct;crd=cn或crd=c(m,n)只对multicard有用,定义卡类型。卡类型是1位数用cn表示,多于1位数用c(m,n)表示。这里m,n都是实际的列值而不是卡类型加列值。例如:struct;read=2;ser=c(1,4);crd=c5是multicard类型记录,每张卡序列号在column1到column4,卡类型号在column5.必须存在的卡类型(requirdcardtypes)Struct;req=card_numbers有时候有些卡是可选的,有些卡是必须存在的。req=定义在记录中必须有的卡类型,只对multicard有用,可用逗号分开独立列出,也可用start:end或start/end列出。例如:struct;req=1,2定义在每个记录中必须有卡1和卡2,其它卡是可选的。重复出现的卡类型(repeatcardtypes)Struct;rep=card_numbers定义哪些卡在记录不止出现一次,只有定义了read=2和crd后rep才有意义例如:struct;read=2;ser=c(1,4);crd=c5;rep=1,2最大卡类型数(Highestcardtypenumber)每个记录超过了9张卡,要在这里定义。struct;max=n

4.轴(axes)轴是表格的一部分,可生成表的行(row),表的列(column)等。轴中每一项称为元素(element)。轴元素类型有:1.文本和条件元素:包含文本和条件,即一个被访者包括在该元素中应有特征。2.文本元素:只产生文本,不包括其它。3.算术元素:元素包括算术值。4.统计元素:合计、小计及一些统计功能如均值和标准差。4.1.轴定义定义轴的格式是:name[;option]options有很多选项,下面列出几个常见的:c=logical_expression²定义轴中元素要满足的条件²条件定义被访者的特征,只有满足条件的记录才能在这个元素中。²Logical_expression是一个逻辑表示式,结果为真时,该单元合计数加1,否则不变。²如

c=c234’12’

c234列中至少含编码’12’中任何一个元素为真c=c234n’12’c234列中不含编码’12’中任何元素为真c=c234=’12’c234列中只含编码’12’为真

c=c234u’12’c234列中不等于编码’12’时为真

c=numb(c163,c171,c175).eq.1列163,171,175编码合计数为1时为真inc=arith_expression²表中这个轴单元值合计时根据上面数学表示式的值而不是加1。nz²所有单元值都是0时该元素在打印报表时被忽略。4.1.1.特殊条件用来处理Don’tknow和Noanswers之类编码的记录的条件C=-

统计从最后基本元素后没有出现满足轴条件的被访问者。c=-n

统计最后n个元素中没有出现满足轴条件的被访问者。产生’net’元素,用来处理多选题和开放题的条件c=+

从最后基本元素后出现在任何元素中的被访者合计c=+n

统计最后n个元素中出现的被访问者。4.2.Col语句能够定义相同一列(column)中带编码的多个元素,能够代替一组n01语句。语句格式为:colnumber;[base;]elm_txt1[=’code1’][;elm_txt2[=’code2’]…]number

列编码base

产生base元素elm_txtn定义每一元素的文本coden

为编码²如在col语句中只包含元素文本,未含编码,则假定这些答案是单选题且按-&和空(blank)顺序为元素自动编码。²能够对其中一个或几个元素指定编码,未指定编码的第一个元素编码为’1’;中间有元素指定编码的,后面未指定编码的跟着前面自动编码的元素编码。²col语句12个编码后编码为空(blank)。²编码能够用联合列出,相当一个’or’条件。如red/green=’12’²因为‘;’是每一元素分割符,如果‘;’是文本一部分,则要把‘\’符号放在‘;’之前。²用’+’能够把一个col语句分为多行,要在‘;’后分开语句。4.2.1.处理’don’tknows’类型答案产生一个元素统计包括在base中但不包括在其它元素中的被调查者。等于n01语句中c=-条件。语句格式为:colnumber;…;element_txt=rej4.2.2.col语句中的条件用=统计一列(column)中只包含对应元素中编码而没有其它编码的被调查者的数目。是精确的等于(exactlyequalto)col=number;…例:lchild1col=114;base;under5;aged5-10;aged11-15;aged16-18相当于写c=c114’1’,under5元素统计只有5岁以下小孩的家庭。4.2.3.col语句中其它项在col语句中产生一个base项。语句格式为:colnumber;base[=text];…如果后面带text,base元素文本为text内容,否则为base标识。col语句中的子标题语句格式为:colnumber;hd=sub_heading_text;…同axis轴中的n23语句功能一样。col语句中只含文本的元素语句格式为:colnumber;tx=text;…定义只含文本的行,在列中则被忽略。

5.表格由轴产生表,表中每一单元值由横轴(行)和纵轴(列)的条件决定。5.1.Tab语句语句格式为:tab[axis1][axis2][axis3][axis4]row_axiscolumn_axis[;options]²每一个都需要一个独立的tab语句。²能够做多维表,最多能够有6维。多维表是一组表有相同的行和列,但组中的每一个表都有由另外的轴定义的特征。例如:基本表tabage***

现在我们需要根据不同的地区不同年龄不同性别统计数。

三维表tabregionage***

设region有5行:

lregion

col125;base;hd=areaofresidence;north;south;east;west

将产生5个表:

base:ageby***(包括所有被访问者)

north:ageby***

south:ageby***

east:ageby***

west:ageby***5.2.

and语句一列表有相同的轴,用and语句形成的每一个表和每一页的表数目和页数目是不同的。and[n]axis1[axis2…]例如:tabax01bk01

tabax01bk02

tabax01bk03

tabax01bk04能够写成:

tabax01bk01

andbk02bk03bk045.3.组合表格把表格水平或垂直组合,把它们内容加到一起或分开。Sid

把当前表格放到前一个表格右边Und把当前表格放到前一个表格下面Add把当前表格内容加到前一个表格中Div

用前面表格的数据除以后面表格的数据²这些语句不单独使用,她们一般跟在一个tab语句之后。²用这些语句把表格组合在一起,表格单元数都要一样,如果表格小一些,要填充一些哑单元去使表格一样。²and语句也会相同行或列轴的表,它们每一个表都打印在单独一页中,比较数据困难²sid或und语句使不同表打印在同一页,能够横向组合或纵向排列。5.3.1.水平或垂直组合水平组合:sidrow_axiscolumn_axis[;options]例如:tabrating***

sidratingregion²整个表格的宽度不能超过定好的表格宽度。(用pagwid定义)。²表格必须是两维的。²所有表格必须含有相同的行数。²在一个tab语句之后最多可有40个sid语句。²如果不止一个表含有诸如均值(n12)和标准差(n17),则在用axis轴中n25语句产生统计,而不是用因子(factor)。如果用因子,组中第一个表定义的因子会覆盖随后的表格。²如果tab表和sid表都有base列,则用对应的base列去产生行百分数。²如果tab表中有base列,而sid表中没有,则所有表中的行百分数根据tab表中的base列产生。²如果tab语句中没有base列,而sid表中有一个,则side表产生行百分数而tab表不产生。垂直组合:undrow_axiscolumn_axis[;options]例如:tablq1ban1

undlq2ban1²表格必须是两维的。²所有表格必须含有相同的行数。²所有表格的元素个数不能超过500个。5.3.2.增加表格语句格式为:add[row_offset[,col_offset]]axis_names²axis_names的个数和tab语句中一样。²相加的结果放在tab表中。²两个表相加最简单的办法是把两个表对应的行依次相加。例如:我们调查每一个公司拥有的打印机,第一个表存放不同商标的手动打印机,第2个表存放不同商标的电子打印机,最后我们要一个表显示拥有每一个商标的打印机数。tabmanbrdcomsiz;c=c(123,149)u$$addelecbrdcomsiz;c=c(151,175)u$$lmanbrdn10basen01brandA;inc=c(123,125)n01brandB;inc=c(126,128)…lelecbrdn10basen01brandA;inc=c(151,153)n01brandB;inc=c(154,156)…5.3.2.1.相加表的偏移(offset)²表在相加之前可向右或向下偏移指定的列数或行数。²多个表相加表偏移是基于tab表,而不是一些中间的add表表偏移指定的列数addnaxis1axis2表偏移指定的行数addm,0axis1axis2,,,[axis6]在同一表中同时设置向下和向右偏移的行数和列数addm,naxis1axis2,,,[axis6]5.3.3.一个表格的数据除以另一个表格的数据语句格式为:divaxis_names[;options]²axis_names的个数和tab语句中一样。²tab语句中定义的表是”分子”,div语句中定义的表是”分母”。²一个tab语句后只能跟一个div语句,且两个表要有相同的行数和列数,用tab表中单元除以div表中对应的单元。例如:tab表中是被访问者购买的总面包数,div表中是购买面包的总人数,它们相除得到平均每个人购买的面包数。tabax06loaf;inc=c(132,133);dec=2divax06loaf5.4.一页打印多个表格一页打印多个表格有多种选择,由以下两个语句控制:

hitch=number

number范围为0-4,把当前表第一页跟前面表格打印在同一页。²hitch=1

把当前表第一页跟前面表格打印在同一页,但空间不够当前表第一页就分页打印。²hitch=4

如果两表有相同列,能够把一个表的行粘贴在另一个表的后面,使它们打印后看起来象一个表。

squeeze=numbersqueeze范围为0-2,只要有空间,在同一页尽可能多打印当前表的页。²squeeze=1打印又短又肥的表格,在同一页尽可能多的打印。²squeeze=2

控制表头(titles)、脚注(footnotes)、底部文本(bottomtext)的输出ü忽略第一页底部文本。ü如果和第二页的脚注相同,忽略第一页脚注。ü如果和第一页的表头相同,忽略第二页脚注。ü从第一页的脚注和底部文本间开始打印。能够在a语句中用a;nopage;notbl选项控制pagenumbers,tablenumbers不输出。能够用选项a;physpag控制输出物理页数(physicalpagenumbers)而不是逻辑页数(logicalpagenumbers)。

6.数据检查数据一读入到carray中,就能够检查数据。这里我们介绍用holecount对数据进行检查。Holecount能够显示每一列总的编码数。用来在写编辑程序前了解数据全面的情况。²编码的分布例如,在column56有多少被访问者选择了编码2。²编码的密度例如,在一列中有多少被访问者选了一个、两个、三个或多个编码。检查某列是否应该是多选题²在整个数据文件中编码的总数语句格式是:countc(start_col,end_col)[$text$]²text是打印在每一页上的题头,可选项。例如:countc(101,108)$DemonstrationSurvey$²在holecount标题中,Quantum接受双引号,但C编译器不接受,因此在双引号之前要用”\”符号。²能够对或多或少的列进行统计,只要这些列是连续的。²对holecount进行过滤,满足特定条件的记录将被合计。例如:if(c106’1’)countc(101,108)$DemonstrationSurvey_Male$²对trailercards进行统计一般,所给类型的trailercards被当作一张卡,一起合计,因此列的计数包括所有的trailercards的编码。有时需要在一组trailercards中合计某一张特定卡,如某张trailercard是第5张卡,存在c79中,则用:if(c579’1’)countc(501,580)$Harrods$6.1.对holecounts进行加权语句格式是:countc(start_col,end_col)[$text$]c(m_start,m_end)²c(m_start,m_end)是carray中存放的对每一记录的乘数(权值)。²在一般holecounts中,每一单元只是对记录进行简单的计数。包含给定列中某个特定编码的记录被读入,对应单元加1。²Holecounts也能够不是简单加1,而用c(m_start,m_end)含的值来增加。²如果权值是实数,则用cx(m_start,m_end)来表示。²权值能够事先写定也可在编辑过程中计算。²合计数最后四舍五入。

7.表格格式7.1.Quantum制表区的层次Quantum制表区是分层次的,在某一层定义的特征将适用于这一层及下面所有层,单行语句是最低层,从最低层开始逐渐向上增加,在当前层定义的条件和特点被当前层和低层接受。低层的特点覆盖高层的特点,tab语句定义的特征覆盖a语句定义的,而一些对单行定义的特点则覆盖tab语句或a语句中定义的特点。制表区程序主要的内容有:²运行控制语句:决定运行的总特点,包括对所有表的文本常量,过滤条件,表格头等的定义。主要是a语句。²表格控制语句:定义交*作表的轴,这些语句定义每一个表的文本和一般特征。主要是tab语句。²轴控制语句:每个轴包含一组语句,用来建立表的行与列的文本及条件。7.2.定义运行控制条件在作表区开头第一个语句定义全局缺省的运行条件。语句格式:a;opt1[;opt2…]opt选项将在下一节讨论。例如:a;dsp;op=12;date;dec=1dsp

double-spaced缩写,每一行之间有一空行。op=12每一单元包括绝对数值和列百分数。date每一页右上角打印日期,格式是ddmmmyy.dec

小数点的位置。7.3.在a,sectbeg,flt和tab语句中的选项这些选项分为两类:输出选项:决定运行中每一个表格式,但与表中每一单元内容无关。改变后无需重读数据就可重运行。数据选项:决定每一单元合计数怎样产生,但与表输出格式无关,改变后需要象新的job一样重新运行。7.3.1.输出选项:dec=n

小数点的位置,即包含几位小数。decp=n

百分数中小数点的位置,当op=0,2,7,或&时适用。dsp

表中每一行数据间有一空行。flt=name调用flt语句中定义的过滤条件和表头,这个选项在sectbeg,flt和tab语句中有用,但在a语句中无效。flush

让百分数和绝对数值向右齐平一行一行地打印。Hitch

把当前表和前一个表打印在同一页,如果当前表有多页,则把第一页和前一个表打印在同一页。但如果空间不够打印整页表,则换页。op

表的输出类型

&总数百分数,根据整个表的base(表的左上角显示)来计算。

0行百分数

1绝对数值(缺省)

2根据当前base列计算列百分数

6根据表格中第一个base列计算列百分数

7累积百分数

8指数(indices)pagwid=n

表格每一页宽度,缺省为132个字符,能够加大。physpag打印物理页数而不是逻辑页数,与squeeze,hitch配合使用。side=n

定义行文本的宽度。spechar=ab当一单元值为零时,用特定字符去代替。

a单元值为0

b单元值四舍五入为0nzrow

一行所有单元均为0时不打印nzcol

一列所有单元均为0时不打印7.3.2.数据选项c=logical_expression

记录包括在表中需要满足的条件。dp

在a语句中有用,用双精度计算单元值。缺省是单精度。Inc=arithmetic_expression

单元值根据数学表示式的值来累计,而不是计数加1。7.4.表格标题语句格式是:ttxtitle_txt[<<tab>>][<<page>>]x

定义标题的位置title_txt打印在表格上的标题内容<<tab>>可选项,可对表数目位置进行调整<<page>>可选项,可对页数目位置进行调整ttl在一页中向左对齐。ttr在一页中向右对齐。ttc在一页中间打印ttn缩进10次n个空格tta奇数页向左对齐,偶数页向右对齐ttb与tta相反,偶数页向左对齐,奇数页向右对齐表格标题反映表格的不同层次:üa语句后的tts定义的是整个运行的标题,打印在每一页的最上面。üFlt语句后tts定义的是一组表的标题。üTab语句后tts定义的是特定表的标题。ü在l语句后轴定义的tts在横轴中打印,在纵轴中则被忽略。标题打印的顺序能够用a语句、flt语句、tab语句中ttord,ttbeg,ttend来规定,缺省打印顺序是:1.a语句后tts2.tb语句中的表数目3.行l语句(横轴)后的tts4.tab语句后的tts5.flt语句后的tts6.flt=语句后的tts7.以”BASE”打头的tts7.4.1.针对T统计表中的标题ttxtitle_text;tstat7.4.2.标题下划线ttxtitle_text;unlnumberüunl1

整行加下划线一直到最后一个非空字符üunl2

和unl1一样,当空字符串除外üunl3

只在非空字符下加下划线7.4.3.

表格脚注在表格每一页最后一行后打印的标题。格式是:foot后跟tt语句。只想在最后一页打印脚注,在表格区程序最后用n03s来代替foot语句。能够在不同层次定义脚注,a语句、flt语句、tab语句和l语句均可定义,每一层在foot后可定义30个tt语句。Quantum假设所有标题打印在页上面,直到读到foot语句,foot语句之后的标题都属于这个foot的脚注,直到另一个foot语句出现。直到同层次的另一个脚注被读到,在某一特定层的脚注一直起作用。关掉脚注,是在foot语句后跟一个空tt语句。7.4.4.

在页底部打印文本格式是:bot后跟tt语句。

8.产生列标题定义列标题(breakdown或banner)。ü完全自动产生,标题用元素文本,列宽度自动计算。ü半自动产生,标题用元素文本,列宽度用a,sectbeg,flt,tab或l语句中的colwid=来定义。ü手动产生,用g语句定义标题文本,p语句定义列宽度。8.1.自动设置列标题最大宽度head_width=pagwid–(side+%_sign+pcpos_value)pagwid

页宽度,缺省为132side

行文本宽度,缺省为24%_sign

每一行最后一列打印%符号的位置ü列宽度自动计算,列标题用行文本。用列标题最大宽度除以列数得出每一列宽度。ü最大列宽度为16,最小为8。大于16设置为16,小于8也设置为8。ü所有标题自动产生,轴标题(l语句中的hd=)列在所有标题中央,包括base列。ü轴的子标题(用n23语句,或col与val语句中hd=定义的标题)列在对应列中央。ü每一列标题(从n01/col/val语句中产生)在列宽度范围向右对齐,如果太长分行,从空格/连字符/反斜线处分开。lregion;hd=AreaofResidencecol15;Base;hd=London;InnerLondon;OuterLondon;+hd=SouthernEngland;Cornwall/Devon;Kent/Surrey/Sus***;...AreaofResidenceLondonSouthernEnglandKent/InnerOuterCornwall/Surrey/BaseLondonLondonDevonSus***用hdlev=产生嵌套标题。例如:lban01n23VisitorstotheMuseum;hdlev=1n10Basen23Sex;hdlev=2col110;Male;Femalen23Age;hdlev=2col111;11-20=’12’;21-34=’34’;35-44=’56’;55+=’78’n23Visited;hdlev=2n23MuseumBefore;hdlev=2col116;Yes;No输出样式为:VisitorstotheMuseum

Visited

Sex

Age

MuseumBeforeBaseMaleFemale11-2021-3435-4455+YesNo8.2.手动设置l标题文本定义格式为:gcol1_text[col2_text...]一个轴能够包括最多20个成组的g语句以形成列标题。gMaritalStatusgBaseSingleMarriedDivorcedWidowedgl列打印位置定义格式为:px[x]lax04col109;Base;Single;Married;Divorced;WidowedgMaritalStatusgBaseSingleMarriedDivorcedWidowedpx|x|x|x|x产生标题格式为:MaritalStatusBaseSingleMarriedDivorcedWidowedBase200|44|122|33|1Male44|6|27|10|1Female156|38|95|23|0

9.复杂元素定义9.1.计数产生的元素n01

用一些简单或复杂的条件产生基本元素n15

同n01语句相同但元素不打印n10

产生一个基于base的百分数n11

同n10语句相同但元素不打印n01语句格式是:n01[element_text][;options]产生列的基本计数元素。例如:n01Married;c=c109’2’n15语句格式是:n15[text][;options]n10语句格式是:n10[text][;options]例如:n10base表中第一行和列包含合计数,它们是行或列满足条件的被调查者总数。Base行和base列交*点就是表的base数。Base不同于Total,total是表中实际数合计,而base是指符合表中条件而不是表中实际数的合计。n11语句格式是:n11[text][;options]9.2.子标题n03

产生只有文本的元素n23

产生一个子标题n33

继续长元素文本产生额外文本n03[element_text][;options]经常见来产生空行(没有文本)。例如:lmstatn10Basen03n01Single;c=c109’1’n01Married;c=c109’2’轴的子标题n23heading_text[;hdlev=header_level_number][;toptext=col_header][;options]用hdlev=keyword定义子标题的层数,从1到9,1层最高,高层打印在上面,层数能够不连续。打印位置都是在对应列的中央。可用toptext=定义一个打印的标题来代替heading_text。继续长文本元素语句n33continuation_textn33语句用在n01或n10语句之后,主动分行继续输出长文本。n00按照设定条件过滤记录。设定的条件适应于后面连续的行,直到另一个n00语句出现。n00;c=logical_expressionlpref1col321;Base;LikedProduct;DislikedProduct;DK/NA=rejn03n00;c=c321’1’col322;hd=ReasonsforLikingProduct;CleansWell;+LastsaLongTime;SmellsNice;n03n00;c=c321’2’col325;hd=ReasonsforDislikingProduct;InconvenienttoUse;+TooExpensive;n09手动分页能够用语句控制新表在轴上开始的点。n09[continuation_text][;hug=num_elms][;options]continuation_text打印在下一页左上角位置。Hug=num_elms当前页剩几个元素时开始新的一页。当有squeeze和hitch关键字时,Quantum忽略n09而按照squeeze,hitch打印表格。

10.表格管理10.1.

表数目格式是:tbx[number][;nand]x决定表数目在一行中的位置。l

左面r右面c

中间a

奇数页打印在左边,偶数页打印在右边b

偶数页打印在左边,奇数页打印在右边nand强迫and语句产生的表要和父tab语句的表树木一样。number是随后tab语句产生的表数目。如果表数目是连续的,只需不带参数的tb语句。如果表数目是不连续的,tab语句之前要用带合适数字的tb语句,强制表数目为一特定数。And语句产生的表都有一个独立的表数目,如果带nand,则可强迫and语句产生的的表和父tab语句的表数目一样。Notbl不打印表数目。用notbl关闭自动表数目,在tt语句后定义表数目,且带<tab>符号指定表数目打印位置。例:tabage***

ttlTable<tab>:AgebySex

表一产生,Quantum将用表数目替换<tab>,向左看齐打印标题。10.2.页数目pagnumber下一个表页数目,可设定单独的页数目,一般打印在右上角,除了在a,flt,或tab语句中用nopage不打印页数目。Nopage只是不打印页数目,每一个新页还都有依次增加的页数目。10.3.flt过滤语句过滤语句在表格层次中的第2层,定义的条件、选项和文本适用于随后所有表,直到另一个过滤语句覆盖它。过滤语句有两种形式:全局(flt)和命名(flt=).10.3.1.全局过滤语句语句格式是:flt[;c=logical_expression][;options]如:flt;c=c106’2’;nz;decp=2ü后面所有表只包括106列编码为’2’的记录ü忽略所有单元均为0的行ü百分数显示2位小数表格中不同层之间的c=定义的逻辑表示式是and的关系。其它条件是低层的覆盖高层的。如:flt;c=c106’2’taboccupregion;c=c132’1’ttlBase:WomeninFullTimeEmployment在我们表中是一个‘and’条件:c=c106’2’.and.c132’1’在全局过滤语句后可有and和tt语句,前者列出轴的更高维数,后者定义所有表头的打印标题。flt语句后可跟foot和bot语句,每一个后面的tt语句定义的标题也是全局的,适用于后面所有表。fit在一组表有相同的过滤条件时很有用,或者用不同过滤条件多次产生一组表。能够用一个空的flt语句停止前面的flt语句以及tt,and语句定义的选项。10.3.2.命名过滤语句语句格式是:flt=name[;c=logical_expression][;options]命名flt过滤语句能够提高效率。使用命名过滤器就是在每一个tab语句后跟一个flt=name,命名flt语句只在调用tab语句中有用,而且不覆盖以前的全局flt语句定义的条件,而是一个附加关系。例如:定义命名过滤条件flt=male;c=c106’1’;op=120ttlMales调用:tabax01demo;flt=male10.3.3.过滤语句嵌套嵌套过滤区开始:sectbeg[;c=logical_expression][;options]嵌套过滤区结束:sectend有时一组表有相同的标题和过滤条件,但组内有些表需要附加标题和过滤条件,一个有效的方法是用过滤语句嵌套。过滤嵌套是把表分为组,外面组的过滤条件和标题适用于组内所有表,里面组的表能够定义自己附加的标题和过滤条件。在sectend之前能够有10个sectbeg,连续的sectbeg语句而不被sectend插入,说明在主制表区开始了一个子制表区(tablesubsection),当遇到第一个sectend子制表区结束,然后主制表区遇到另一个sectend才结束。子制表区的所有过滤和选项设置附加在主制表区的过滤和标题之后。

11.处理数字11.1.val语句val语句定义表元素的条件是变量等于一个算术值或在值的一个范围,是针对数值类型答案而不是编码类型答案。如家庭人口数或电话号码。11.1.1.检测是否等于算术值Val语句格式是valvariable;[Base];[hd=Text];=;[tx=Text];n1[Text1];...;nn[Textn]检查变量是否包含特定值,相等则对应单元值加1。Variable是data,integer或real类型变量,变量值将与n1到nn的值比较,Text1到Textn是被打印出来的行文本。每个n[Text]必须包含一个数字,数字位置则不限定。例如:我们假设c(110,111)包含家庭人口数,我们想做一个表显示多少被访问者家中分别有1,2,3,4,5,6个人。valc(110,111);base;hd=Numberinhousehold;=;1Person;2People;+3People;4People;5People;6People如果c(110,111)的值等于1,则被访问者包含在第2行(第1行为base)中,如果等于6,则包含在’6people’行中。如果数字不是元素文本的一个有效部分,则能够用以下格式(文本后用=隔开):valc(132,133);Base;hd=BrandBoughtMostOften;=;BrandA=77;+BrandB=79;BrandC=81;Others=rejc(132,133)包含最常购买商标编码,如果c(132,133)=$77$,最常购买的是BrandA,c(132,133)=$79$,最常购买的是BrandB。前面元素中都不包括的放在others行中。如果元素中只包括数字,且数字每次加1,则能够用以下格式:valc(m,n);Base;=;start:endstart:end中间不能有空格。用start:end范围内数字做行或列文本。11.1.2.检测在算术值范围包含在表元素中的条件是变量值在给定范围内。下面两种格式要输入最小和最大值,用‘-‘或‘/’分开。如果没给上限,假设是无穷大。语句格式是:valvariable;i;min1–max1[element_txt1];min2–max2[element_txt2]...i表示最大值包括在给定范围内。valvariable;r;min1–max1[element_txt1];min2–max2[element_txt2]...r表示最大值不包括在给定范围内。例如:valc(110,111);Base;hd=SizeofHousehold;I;1-2People;+3-4People;5-6People;7orMorePeople如果c(110,111)的值在1-2之间,则被访问者包括在’1-2people’行中。11.1.3.组合两种检测在一个val语句中,操作符=,I,R能够联合使用。lhshldvalc(110,111);Base;hd=SizeofHousehold;=;1Person;2People;+I;3-4People;5-6People;7-8People;9orMorePeople11.1.4.统计缺失值记录如果缺少数据而不满足val中所有条件,因此val语句中产生一个元素去统计这些缺少数据的记录。条件是missing_.lrentalvalc(9,10);Base;i;None=0;1-5;6-10;11-20;21-30;31+;+=;DK/NA=missing_11.2.fld语句表中元素要满足条件是一个域(field)包含一个特定数值编码(numericcode).语句格式是:fldcol_specs;[base[=btext]];[hd=hdtext];[tx=text];element_specscol_specs定义被读的列,有三种方式输入:1.一个接一个列出每一列,用,隔开:如fld(c(12,13),c(14,15),c(16,17))2.如果是顺序域,能够用每一个域开始列和域的宽度来定义:fld(c12,c14,c16):23.如果不是顺序域,能够写出开始列和每一组域宽度,用/分开每一组:fldc12,c16/c52,c56:2将读c(12,13),c(14,15),c(16,17),c(52,53),c(54,55)andc(56,57).element_specs定义元素的文本和答案对应的编码,只输文本则顺序编码,也能够自己编码。例如:统计看过每一个电影的人数,fld(c12,c14,c16):2;Columbus;Aliens3;PrettyWoman;+GreenCard;Batman2答案编码不是顺序的或不希望它们顺序列出,则在元素文本后跟=和对应编码,一个元素对应多个编码,用逗号隔开,如是一个区间,则把开始编码和最后编码用连字符隔开。fld(c12,c14,c16):2;ScienceFiction/Fantasy=2,5;Historical=1;++Others=3-4象NoAnswer或Don’tknow之类没有数字编码,则能够用$&&$来表示:fld(c12,c14,c16):2;Columbus;Aliens3;PrettyWoman;+GreenCard;Batman2;Noneofthese=$&&$11.3.bit语句bit语句是根据从编辑区产生的整型数组来合计数据。Field和bit语句一起完成fld功能,bit根据field语句统计的数据来作表。语句格式是:bitarray_name;element_text1;element_text2;...array_name是field语句中产生的整型数组,element_text是元素的文本和编码。例如:bitfilms;Columbus;Aliens3;PrettyWoman;GreenCard;Batman2当films数组元素1大于0时,Columbus统计数加1,而不是加films数组元素,是统计多少人看这个电影,而不是这个电影被看多少次(一个人能够重复看)。Bit也能够象fld一样让答案不用顺序排出:bitfilms;ScienceFiction/Fantasy=2,5;Historical=1;Others=3-4当数组films单元2和(或)单元5值大于0时,ScienceFiction/Fantasy合计数将加1;单元1大于0时,Historical合计数加1;单元3和(或)单元4值大于0时,Others合计数加1。11.4.比较bit语句和fld语句当有数值编码,简单统计被访问者人数,用fld比field/bit语句简单和快速。如要合计单元值,而不是简单加1,则要用inc=选项,但如果是数值编码,则inc=不可能用,要用field/bit代替fld.例如:统计每部电影被看的次数bitfilms;Base;Columbus;%inc=films1;Aliens3;%inc=films2;+PrettyWoman;%inc=films3;GreenCard;%inc=films4;+Batman2;%inc=films511.5.频数分布(Frequencydistributions)频数分布检查域中包含的字符或数字数据。这样能够决定什么样数据能够被分组作表,也可粗略估计中值。产生频数分布产生一个按字母和大小次序排序的频数分布,语句格式是:listc(start_col,end_col)[$text$]只按字母排序用listac(m,n)[$text$]只按大小次序排序用listrc(m,n)[$text$]listrc(107,108)$Contentsofcols7and8$listac(t1,t1+4)$FirstSetofCarBrands$每个频数分布表包括两个部分,第1部分域的值按字母或数字次序排序,第2部分按每个值出现的次数排序。每个频数表包括绝对值和累积数,及对应的百分比。最后Quantum打印:ü不同的数据值ü每个值出现的次数ü所有数据的总和(按出现次数累计)ü所有数据的均值ü所有数据值的标准差例如:列出column123到column125的频数分布:listc(123,125)$PRICEPAID$

12.统计功能Quantum强大功能之一就是产生不同类型的统计数据,不需了解特定的公式。12.1.产生合计数产生一个合计(total)no4[element_text]产生一个小计(subtotal)no5[element_text]ü所有从n01,n15,col,val,fld,bit语句产生的行或列都可用n04,n05语句来统计。ü如果n04语句放在表头和base之间,产生一个表头和base之间的合计。ün04语句放在base与表底

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论