Each of the following examples is given in two parts. First the Q-language input is given. Then the corresponding output produced by Q4TODDL is shown. The first 3 examples are compatible with instruments from CASES versions 3 or 4. The next 5 examples are for CASES version 4 only.
The following examples are included:
>ex01< Here is a typical Q language item. What will Q4TODDL produce? (Notice that the first line of the item text is now the default long label for the variable.) <1> A usable but not completely descriptive DDL file <3> A complete DDL file without need of improvement <8> Don’t know <9> Refused ===>
name = ex01 label = Here is a typical Q language item. column = 6 labels = 1 A usable but not completely descriptive DDL file 3 A complete DDL file without need of improvement 8 Don’t know 9 Refused text = Here is a typical Q language item. What will Q4TODDL produce? (Notice that the first line of the item text is now the default long label for the variable.)
>ex02< This item includes four of the Q-language extensions: 1. Abbreviated category labels 2. Long variable label 3. First missing-data code 4. Second missing-data code These keywords will not appear in the translated instruments; they are used only by Q4TODDL. The keywords may be placed anywhere within the item. Do you think you will put them in your instruments? <1> Probably not [##[prob not] <3> Always: better to be prepared <8> Have no idea, can’t say [##[ no idea] <9> Refused [##label=An Example of Some Q-language Extensions] [##md1=9] [##md2=8] ===>
name = ex02 label = An Example of Some Q-language Extensions column = 7 md1 = 9 md2 = 8 labels = 1 Probably not [prob not] 3 Always: better to be prepared 8 Have no idea, can’t say [ no idea] 9 Refused text = This item includes four of the Q-language extensions: 1. Abbreviated category labels 2. Long variable label 3. First missing-data code 4. Second missing-data code These keywords will not appear in the translated instruments; they are used only by Q4TODDL. The keywords may be placed anywhere within the item. Do you think you will put them in your instruments?
>ex03< This item illustrates Q4TODDL’s text control keywords. By default, Q4TODDL puts into the ‘text=’ DDL segment the text between the item name and the first response code. If you want the DDL text segment to include selected lines of the entire Q-language item, use the ‘bt’ (begin text) and ‘et’ (end text) keywords. Is it clear how they work? <1> Yes <5> No <8> No idea, can’t say [##et] These two lines will not get copied to the text segment, because they come after the ‘et’ command. [##bt] Now begin copying to the text segment again. Copying will continue until another ‘et’. [##et] ===>
name = ex03 label = This item illustrates Q4TODDL’s text control keywords. column = 8 labels = 1 Yes 5 No 8 No idea, can’t say text = This item illustrates Q4TODDL’s text control keywords. By default, Q4TODDL puts into the ‘text=’ DDL segment the text between the item name and the first response code. If you want the DDL text segment to include selected lines of the entire Q-language item, use the ‘bt’ (begin text) and ‘et’ (end text) keywords. Is it clear how they work? <1> Yes <5> No <8> No idea, can’t say Now begin copying to the text segment again. Copying will continue until another ‘et’.
>form1< This is a form with a single named input field. (Single items on a form do not have to be named; if they are not, the variable name is just the name of the form -- e.g., form1) Q4TODDL will treat this item the same as a CASES version 3 item: The template area down to the first precode will become the DDL text segment. The first line of the text is the default long label. Any text to the right of each precode is interpreted as the category label. Notice that the Q-language extensions work here too. <1> True <2> False <8> Don’t know [##md1=8] <9> Refused [##md2=9] @field1
name = form1@field1 label = This is a form with a single named input field. record = 2 column = 4 md1 = 8 md2 = 9 labels = 1 True 2 False 8 Don’t know 9 Refused text = This is a form with a single named input field. (Single items on a form do not have to be named; if they are not, the variable name is just the name of the form -- e.g., form1) Q4TODDL will treat this item the same as a CASES version 3 item: The template area down to the first precode will become the DDL text segment. The first line of the text is the default long label. Any text to the right of each precode is interpreted as the category label. Notice that the Q-language extensions work here too.
>form2< This is a form with multiple input fields (items). The entire form will be preserved as the text segment for the first item. The text for subsequent items will contain only that part of the form that has the text associated with that particular field. The default long label for each item will be the first line of the text associated with that field. The DDL names for both items on the form are being shortened by using the ’dname=’ command. [##dname=form2a] <1> OK <2> Not OK @field1 This is text associated with the second field. Do you see where it goes? [##dname=form2b] <1> Yes <2> No @field2
* name = form2a label = This is a form with multiple input fields (items). record = 2 column = 5 labels = 1 OK 2 Not OK text = This is a form with multiple input fields (items). The entire form will be preserved as the text segment for the first item. The text for subsequent items will contain only that part of the form that has the text associated with that particular field. The default long label for each item will be the first line of the text associated with that field. The DDL names for both items on the form are being shortened by using the ’dname=’ command. <1> OK <2> Not OK @field1 This is text associated with the second field. Do you see where it goes? <1> Yes <2> No @field2 (This item ’form2a’ is the first on this form.) (The Q name was ’form2@field1’.) * name = form2b label = This is text associated with the second field. record = 2 column = 6 labels = 1 Yes 2 No text = This is text associated with the second field. Do you see where it goes? (See ’form2a’ for full text of this form.) (The Q name was ’form2@field2’.)
>form3< This is a form with precodes in the post-template area. Q4TODDL will look for plain text after each precode; if it finds any, it will preserve that textual information as category labels. (1) Numbers in parentheses are just interpreted as text by QT and Q4TODDL. (2) Therefore, the actual precodes and any associated category text must be located in the post-template. @field1 [@field1] <1> First precode <2> Second precode
name = form3@field1 label = This is a form with precodes in the post-template area. record = 2 column = 7 labels = 1 First precode 2 Second precode text = This is a form with precodes in the post-template area. Q4TODDL will look for plain text after each precode; if it finds any, it will preserve that textual information as category labels. (1) Numbers in parentheses are just interpreted as text by QT and Q4TODDL. (2) Therefore, the actual precodes and any associated category text must be located in the post-template.
>form4< This form has multiple input fields plus a non-input item defined in the post-template area. As for any non-input item, Q4TODDL will generate DDL for the item if it is named in a variable list or if the option to process non-input items is in effect. This first input field has a mixture of precode locations -- some in the template and some in the post-template. <1> First template precode <2> Second template precode @field1 The second input field has all its precodes in the post-template. (1) This isn’t a real precode (2) The real precodes are in the post-template @field2 [@field1] <9> Extra precode defined for field1 [@field2] <1> First real precode <2> Second real precode [@noninp] [allow char 5] Non-input var defined in post template [storein @noninp]
* name = form4@field1 label = This form has multiple input fields plus a non-input item record = 2 column = 8 labels = 1 First template precode 2 Second template precode 9 Extra precode defined for field1 text = This form has multiple input fields plus a non-input item defined in the post-template area. As for any non-input item, Q4TODDL will generate DDL for the item if it is named in a variable list or if the option to process non-input items is in effect. This first input field has a mixture of precode locations -- some in the template and some in the post-template. <1> First template precode <2> Second template precode @field1 The second input field has all its precodes in the post-template. (1) This isn’t a real precode (2) The real precodes are in the post-template @field2 (This item ’form4@field1’ is the first on this form.) * name = form4@field2 label = The second input field has all its precodes in the post-template. record = 2 column = 9 labels = 1 First real precode 2 Second real precode text = The second input field has all its precodes in the post-template. (1) This isn’t a real precode (2) The real precodes are in the post-template @field2 (See ’form4@field1’ for full text of this form.) * name = form4@noninp label = Non-input var defined in post template record = 2 column = 10 width = 5 type = character text = Non-input var defined in post template
>testarr< This is a non-input item containing a two-dimensional array of floating point numbers, with one decimal place. Q4TODDL will create a variable in the DDL file for each element in the array. The variable name will be formed by appending the array subscripts to the array name. For example, "testarr_1_2" will be the name of the array element testarr(1,2). Text is usually saved for non-input items, but we are suppressing it by using the ’nt’ command. [##nt] [allow float 2.1 for 2 by 2] [store <1.5> in testarr(<1>,<1>)] [store <2.5> in testarr(<1>,<2>)] [store <3.5> in testarr(<2>,<1>)] [store <4.5> in testarr(<2>,<2>)]
* name = testarr_1_1 label = This is a non-input item containing a two-dimensional array record = 2 column = 15 width = 2 scale = 1 * name = testarr_1_2 label = This is a non-input item containing a two-dimensional array record = 2 column = 17 width = 2 scale = 1 * name = testarr_2_1 label = This is a non-input item containing a two-dimensional array record = 2 column = 19 width = 2 scale = 1 * name = testarr_2_2 label = This is a non-input item containing a two-dimensional array record = 2 column = 21 width = 2 scale = 1
Item name Item type Record Column Width Input number Item? CASEID integer 1 1 5 ex01 integer 1 6 1 y ex02 integer 1 7 1 y ex03 integer 1 8 1 y form1@field1 integer 2 4 1 y form2@field1 integer 2 5 1 y form2@field2 integer 2 6 1 y form3@field1 integer 2 7 1 y form4@field1 integer 2 8 1 y form4@field2 integer 2 9 1 y form4@noninp char 2 10 5 testarr float 2 15 2.1 array [2 by 2] float 2 21 2.1(The lines beginning with the item names are sufficient for Q4TODDL.)
path = . title = Demonstration Items for Q4TODDL ncases = 100 records/case = 2 lrecl = 80 * name = CASEID label = Case identification number record = 1 column = 1 width = 5(This file includes information about the study as a whole, and about the ‘CASEID’ variable.)