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)2在C數組(carray))中的單個數據變量,用cnumber表示2在C數組區間中的數據變量,用c(start_pos,end_pos)表示2定義數據變量,用datavar_namesizes表示2在C數組中最大有1000個數據單元,每個單元稱C變量(c-variables);每次處理完一個記錄時,清空數據單元讀下一記錄;每一單元對應一列(column)。整型變量(integervariables)2定義整型變量,用intvar_namesizes表示,調用用name[cell_number]。2整型變量在運行開始賦為0,在讀入不同記錄時不會被清空。2Quantum提供一個有200個整型變量的整型數組(tarray),數組中每一位可含一個整型值。2數據變量和整型變量的區別是:如6000要占用4列用4個數據變量來表示,而用整型變量則只要一個來表示。實型變量(realvariables)2定義實型變量,用realvar_namesizes表示,調用用name[cell_number]。2實型變量在運行開始賦為0.0,在讀入不同記錄時也不會被清空。2Quantum提供一個有100個實型變量的實型數組(xarray),數組中每一位可含一個實型值。2非零實變量值在運行結束時不自動輸出,可用report語句輸出。2在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_expression2定義軸中元素要滿足的條件2條件定義被訪者的特征,只有滿足條件的記錄才能在這個元素中。2Logical_expression是一個邏輯表示式,結果為真時,該單元合計數加1,否則不變。2如

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_expression2表中這個軸單元值合計時根據上面數學表示式的值而不是加1。nz2所有單元值都是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

為編碼2如在col語句中只包含元素文本,未含編碼,則假定這些答案是單選題且按-&和空(blank)順序為元素自動編碼。2能夠對其中一個或幾個元素指定編碼,未指定編碼的第一個元素編碼為’1’;中間有元素指定編碼的,后面未指定編碼的跟著前面自動編碼的元素編碼。2col語句12個編碼后編碼為空(blank)。2編碼能夠用聯合列出,相當一個’or’條件。如red/green=’12’2因為‘;’是每一元素分割符,如果‘;’是文本一部分,則要把‘\’符號放在‘;’之前。2用’+’能夠把一個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]2每一個都需要一個獨立的tab語句。2能夠做多維表,最多能夠有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

用前面表格的數據除以后面表格的數據2這些語句不單獨使用,她們一般跟在一個tab語句之后。2用這些語句把表格組合在一起,表格單元數都要一樣,如果表格小一些,要填充一些啞單元去使表格一樣。2and語句也會相同行或列軸的表,它們每一個表都打印在單獨一頁中,比較數據困難2sid或und語句使不同表打印在同一頁,能夠橫向組合或縱向排列。5.3.1.水平或垂直組合水平組合:sidrow_axiscolumn_axis[;options]例如:tabrating***

sidratingregion2整個表格的寬度不能超過定好的表格寬度。(用pagwid定義)。2表格必須是兩維的。2所有表格必須含有相同的行數。2在一個tab語句之后最多可有40個sid語句。2如果不止一個表含有諸如均值(n12)和標準差(n17),則在用axis軸中n25語句產生統計,而不是用因子(factor)。如果用因子,組中第一個表定義的因子會覆蓋隨后的表格。2如果tab表和sid表都有base列,則用對應的base列去產生行百分數。2如果tab表中有base列,而sid表中沒有,則所有表中的行百分數根據tab表中的base列產生。2如果tab語句中沒有base列,而sid表中有一個,則side表產生行百分數而tab表不產生。垂直組合:undrow_axiscolumn_axis[;options]例如:tablq1ban1

undlq2ban12表格必須是兩維的。2所有表格必須含有相同的行數。2所有表格的元素個數不能超過500個。5.3.2.增加表格語句格式為:add[row_offset[,col_offset]]axis_names2axis_names的個數和tab語句中一樣。2相加的結果放在tab表中。2兩個表相加最簡單的辦法是把兩個表對應的行依次相加。例如:我們調查每一個公司擁有的打印機,第一個表存放不同商標的手動打印機,第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)2表在相加之前可向右或向下偏移指定的列數或行數。2多個表相加表偏移是基于tab表,而不是一些中間的add表表偏移指定的列數addnaxis1axis2表偏移指定的行數addm,0axis1axis2,,,[axis6]在同一表中同時設置向下和向右偏移的行數和列數addm,naxis1axis2,,,[axis6]5.3.3.一個表格的數據除以另一個表格的數據語句格式為:divaxis_names[;options]2axis_names的個數和tab語句中一樣。2tab語句中定義的表是”分子”,div語句中定義的表是”分母”。2一個tab語句后只能跟一個div語句,且兩個表要有相同的行數和列數,用tab表中單元除以div表中對應的單元。例如:tab表中是被訪問者購買的總面包數,div表中是購買面包的總人數,它們相除得到平均每個人購買的面包數。tabax06loaf;inc=c(132,133);dec=2divax06loaf5.4.一頁打印多個表格一頁打印多個表格有多種選擇,由以下兩個語句控制:

hitch=number

number范圍為0-4,把當前表第一頁跟前面表格打印在同一頁。2hitch=1

把當前表第一頁跟前面表格打印在同一頁,但空間不夠當前表第一頁就分頁打印。2hitch=4

如果兩表有相同列,能夠把一個表的行粘貼在另一個表的后面,使它們打印后看起來象一個表。

squeeze=numbersqueeze范圍為0-2,只要有空間,在同一頁盡可能多打印當前表的頁。2squeeze=1打印又短又肥的表格,在同一頁盡可能多的打印。2squeeze=2

控制表頭(titles)、腳注(footnotes)、底部文本(bottomtext)的輸出ü忽略第一頁底部文本。ü如果和第二頁的腳注相同,忽略第一頁腳注。ü如果和第一頁的表頭相同,忽略第二頁腳注。ü從第一頁的腳注和底部文本間開始打印。能夠在a語句中用a;nopage;notbl選項控制pagenumbers,tablenumbers不輸出。能夠用選項a;physpag控制輸出物理頁數(physicalpagenumbers)而不是邏輯頁數(logicalpagenumbers)。

6.數據檢查數據一讀入到carray中,就能夠檢查數據。這里我們介紹用holecount對數據進行檢查。Holecount能夠顯示每一列總的編碼數。用來在寫編輯程序前了解數據全面的情況。2編碼的分布例如,在column56有多少被訪問者選擇了編碼2。2編碼的密度例如,在一列中有多少被訪問者選了一個、兩個、三個或多個編碼。檢查某列是否應該是多選題2在整個數據文件中編碼的總數語句格式是:countc(start_col,end_col)[$text$]2text是打印在每一頁上的題頭,可選項。例如:countc(101,108)$DemonstrationSurvey$2在holecount標題中,Quantum接受雙引號,但C編譯器不接受,因此在雙引號之前要用”\”符號。2能夠對或多或少的列進行統計,只要這些列是連續的。2對holecount進行過濾,滿足特定條件的記錄將被合計。例如:if(c106’1’)countc(101,108)$DemonstrationSurvey_Male$2對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)2c(m_start,m_end)是carray中存放的對每一記錄的乘數(權值)。2在一般holecounts中,每一單元只是對記錄進行簡單的計數。包含給定列中某個特定編碼的記錄被讀入,對應單元加1。2Holecounts也能夠不是簡單加1,而用c(m_start,m_end)含的值來增加。2如果權值是實數,則用cx(m_start,m_end)來表示。2權值能夠事先寫定也可在編輯過程中計算。2合計數最后四舍五入。

7.表格格式7.1.Quantum制表區的層次Quantum制表區是分層次的,在某一層定義的特征將適用于這一層及下面所有層,單行語句是最低層,從最低層開始逐漸向上增加,在當前層定義的條件和特點被當前層和低層接受。低層的特點覆蓋高層的特點,tab語句定義的特征覆蓋a語句定義的,而一些對單行定義的特點則覆蓋tab語句或a語句中定義的特點。制表區程序主要的內容有:2運行控制語句:決定運行的總特點,包括對所有表的文本常量,過濾條件,表格頭等的定義。主要是a語句。2表格控制語句:定義交*作表的軸,這些語句定義每一個表的文本和一般特征。主要是tab語句。2軸控制語句:每個軸包含一組語句,用來建立表的行與列的文本及條件。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

提交評論