TEDS Data Dictionary

Derived Variables in the 18 Year Dataset

This page gives a listing of derived variables in the 18 Year dataset, in alphabetical order of variable name. For each variable, a short written description is followed by the SPSS syntax (in a box) that was used to derive the variable.

This page does not include descriptions of background variables that are derived from other sources and that are included in the 18 Year dataset. For information about such variables, see pages describing background variables, exclusions and scrambled IDs.

Most of the twin-specific variables were derived prior to double entering the dataset. Hence the variable names used in the syntax often lack the endings (1 or 2) used for the final double entered variables.

List of variables described on this page

Click on a variable name in the table below to go to the description on this page. Alternatively, scroll down and find variables in alphabetical order.

Definitions of derived variables

Listed alphabetically

rcb2dt1/2, rcb3dt1/2, rcbrt1/2, rcbrvt1/2, rcbt1/2, rcbvt1/2

Summary scores for Bricks, derived from the 6 subtest scores (which are derived variables described elsewhere on this page):
rcb2dt1/2, rcb3dt1/2: 2D and 3D totals respectively, each derived from 3 subtests;
rcbrt1/2, rcbrvt1/2, rcbvt1/2: Rotation, Rotation+Visualisation, and Visualisation totals respectively, each derived from 2 subtests;
rcbt1/2: overall total, from all 6 subtests.
Each is derived as a mean, requiring all the respective subtest scores to be non-missing. All subtest scores have values 0-9, hence these summary scores also have values 0-9 (including decimal values).

* Bricks totals using means of relevant subtests.
* requiring all component scores to be non-missing.
* Rotation.
COMPUTE rcbrt = MEAN.2(rcb2rtot, rcb3rtot).
* Rotation + visualisation.
COMPUTE rcbrvt = MEAN.2(rcb2rvtot, rcb3rvtot).
* Visualisation.
COMPUTE rcbvt = MEAN.2(rcb2vtot, rcb3vtot).
* 2D.
COMPUTE rcb2dt = MEAN.3(rcb2rtot, rcb2rvtot, rcb2vtot).
* 3D.
COMPUTE rcb3dt = MEAN.3(rcb3rvtot, rcb3rtot, rcb3vtot).
* Overall total.
COMPUTE rcbt = MEAN.6(rcb2rtot, rcb2rvtot, rcb2vtot, rcb3rvtot, rcb3rtot, rcb3vtot).
EXECUTE.
rcb2rtime1/2, rcb2rvtime1/2, rcb2vtime1/2, rcb3rtime1/2, rcb3rvtime1/2, rcb3vtime1/2, rcbcntime1/2, rcbsptime1/2

Duration of Bricks study web activities, measured in minutes as the interval between the recorded start and end time of each activity. The activities are consent (rcbcntime1/2), spatial abilities questionnaire (rcbsptime1/2), the 6 bricks subtests (rcb2rtime1/2, rcb2rvtime1/2, rcb2vtime1/2, rcb3rtime1/2, rcb3rvtime1/2, rcb3vtime1/2). Computed from start and end date/time item variables recorded for each activity. These date/time variables are not retained in the dataset.

* Bricks activity times: subtract start time from end time.
COMPUTE rcbcntime = DATEDIFF(rcbcnentm, rcbcnsttm, "seconds") / 60.
COMPUTE rcbsptime = DATEDIFF(rcbspentm, rcbspsttm, "seconds") / 60.
COMPUTE rcb2rtime = DATEDIFF(rcb2rentm, rcb2rsttm, "seconds") / 60.
COMPUTE rcb2rvtime = DATEDIFF(rcb2rventm, rcb2rvsttm, "seconds") / 60.
COMPUTE rcb2vtime = DATEDIFF(rcb2ventm, rcb2vsttm, "seconds") / 60.
COMPUTE rcb3rvtime = DATEDIFF(rcb3rventm, rcb3rvsttm, "seconds") / 60.
COMPUTE rcb3rtime = DATEDIFF(rcb3rentm, rcb3rsttm, "seconds") / 60.
COMPUTE rcb3vtime = DATEDIFF(rcb3ventm, rcb3vsttm, "seconds") / 60.
EXECUTE.
* Each test had item time limits, but twins could pause indefinitely between items.
* with the browser open; hence very long times are meaningless because they.
* imply long periods without activity; recode to missing.
* if more than 90 minutes (tests) or if more than 30 minutes (consent).
RECODE rcbsptime rcb2rtime rcb2rvtime
 rcb2vtime rcb3rvtime rcb3rtime rcb3vtime (90 THRU HIGHEST=SYSMIS).
RECODE rcbcntime (30 THRU HIGHEST=SYSMIS).
EXECUTE.
rcb2rtmn1/2, rcb2rvtmn1/2, rcb2vtmn1/2, rcb3rtmn1/2, rcb3rvtmn1/2, rcb3vtmn1/2

Mean item response time (in seconds) for each of the 6 Bricks subtests (labelled 2r, 2rv, 2v, 3r, 3rv, 3v). Computed from the response time item variables for every item (excluding practice items) in each subtest.

* Average response time (in seconds): compute as the mean.
* (note extreme values already removed), excluding practice items.
COMPUTE rcb2rtmn = MEAN(rcb2r01t, rcb2r02t, rcb2r03t, rcb2r04t,
 rcb2r05t, rcb2r06t, rcb2r07t, rcb2r08t, rcb2r09t, rcb2r10t, rcb2r11t, rcb2r12t) / 1000.
COMPUTE rcb2rvtmn = MEAN(rcb2rv01t, rcb2rv02t, rcb2rv03t, rcb2rv04t, 
 rcb2rv05t, rcb2rv06t, rcb2rv07t, rcb2rv08t, rcb2rv09t, rcb2rv10t, rcb2rv11t, rcb2rv12t) / 1000.
COMPUTE rcb2vtmn = MEAN(rcb2v01t, rcb2v02t, rcb2v03t, rcb2v04t, 
 rcb2v05t, rcb2v06t, rcb2v07t, rcb2v08t, rcb2v09t, rcb2v10t, rcb2v11t, rcb2v12t) / 1000.
COMPUTE rcb3rvtmn = MEAN(rcb3rv01t, rcb3rv02t, rcb3rv03t, rcb3rv04t, 
 rcb3rv05t, rcb3rv06t, rcb3rv07t, rcb3rv08t, rcb3rv09t, rcb3rv10t, rcb3rv11t, rcb3rv12t) / 1000.
COMPUTE rcb3rtmn = MEAN(rcb3r01t, rcb3r02t, rcb3r03t, rcb3r04t, 
 rcb3r05t, rcb3r06t, rcb3r07t, rcb3r08t, rcb3r09t, rcb3r10t, rcb3r11t, rcb3r12t) / 1000.
COMPUTE rcb3vtmn = MEAN(rcb3v01t, rcb3v02t, rcb3v03t, rcb3v04t, 
 rcb3v05t, rcb3v06t, rcb3v07t, rcb3v08t, rcb3v09t, rcb3v10t, rcb3v11t, rcb3v12t) / 1000.
EXECUTE.
rcb2rtot1/2, rcb2rvtot1/2, rcb2vtot1/2, rcb3rvtot1/2, rcb3rtot1/2, rcb3vtot1/2

Scores for each of the 6 subtests (2r, 2rv, 2v, 3r, 3rv, 3v) in the Bricks study. Each is computed as the sum of 9 of the 12 item scores in the respective subtest. Each item score has values 0 or 1, hence the subtest score has integer values 0-9. The subtest scores originate in the raw data as item variables with raw values 0-12, but are re-computed here with 3 poorly-performing items dropped from each subtest.

* Recompute the Bricks subtest scores.
* using just 9 of the 12 items in each case.
* and omitting the other 3 poorly-performing items.
* 2r: omit items 2, 8, 12.
COMPUTE rcb2rtot = SUM(rcb2r01s, rcb2r03s, rcb2r04s,
 rcb2r05s, rcb2r06s, rcb2r07s, rcb2r09s, rcb2r10s, rcb2r11s).
* 2rv: omit items 1, 6, 10.
COMPUTE rcb2rvtot = SUM(rcb2rv02s, rcb2rv03s, rcb2rv04s,
 rcb2rv05s, rcb2rv07s, rcb2rv08s, rcb2rv09s, rcb2rv11s, rcb2rv12s).
* 2v: omit items 2, 4, 12.
COMPUTE rcb2vtot = SUM(rcb2v01s, rcb2v03s, rcb2v05s,
 rcb2v06s, rcb2v07s, rcb2v08s, rcb2v09s, rcb2v10s, rcb2v11s).
* 3rv: omit items 3, 6, 11.
COMPUTE rcb3rvtot = SUM(rcb3rv01s, rcb3rv02s, rcb3rv04s,
 rcb3rv05s, rcb3rv07s, rcb3rv08s, rcb3rv09s, rcb3rv10s, rcb3rv12s).
* 3r: omit items 1, 4, 5.
COMPUTE rcb3rtot = SUM(rcb3r02s, rcb3r03s, rcb3r06s,
 rcb3r07s, rcb3r08s, rcb3r09s, rcb3r10s, rcb3r11s, rcb3r12s).
* 3v: omit items 1, 7, 8.
COMPUTE rcb3vtot = SUM(rcb3v02s, rcb3v03s, rcb3v04s,
 rcb3v05s, rcb3v06s, rcb3v09s, rcb3v10s, rcb3v11s, rcb3v12s).
EXECUTE.
rcb3dt1/2

See rcb2dt1/2, etc above.

rcb3rtot1/2, rcb3rvtot1/2, rcb3vtot1/2

See rcb2rtot1/2, etc above.

rcbage1/2, rcfage1/2, rckage1/2, rcnage1/2, rcpage1/2, rcqage1/2

Age of twin (in decimal years) on return of the twin questionnaire (rcqage1/2) and on starting the activities in the web studies: Perception (rcpage1/2), Bricks (rcbage1/2), FFMP (rcfage1/2), Kings Challenge (rckage1/2) and Navigation (rcnage1/2).
Derived from variables representing dates of relevant events, as explained in syntax comments below.
Variables aonsdob, birthyear and birthmonth are the date year and month of twin birth respectively. The various date variables are not retained in the dataset.

* Age on return of questionnaires.
COMPUTE rcqage = RND((DATEDIFF(rcqrdate1,aonsdob,"days")) / 365.25, 0.1) .
EXECUTE.
* Age on starting perception activities (use consent start date).
COMPUTE rcpage = RND((DATEDIFF(rcpcnsttm,aonsdob,"days")) / 365.25, 0.1) .
EXECUTE.
* Age on starting bricks activities (use battery start date).
COMPUTE rcbage = RND((DATEDIFF(rcbsttm,aonsdob,"days")) / 365.25, 0.1) .
EXECUTE.
* Age on starting fashion activities (use battery start date).
COMPUTE rcfage = RND((DATEDIFF(rcfsttm,aonsdob,"days")) / 365.25, 0.1) .
EXECUTE.
* Age on starting kings challenge activities (use battery start date).
COMPUTE rckage = RND((DATEDIFF(rcksttm,aonsdob,"days")) / 365.25, 0.1) .
EXECUTE.
* Age on starting navigation activities (use consent start date).
COMPUTE rcnage = RND((DATEDIFF(rcncnsttm,aonsdob,"days")) / 365.25, 0.1) .
EXECUTE.

* For A-levels (or post-16 exams generally) reported in the questionnaire.
* the age computed above relates to the date of return of data, not to the.
* date when exams were actually taken.
* Therefore add another variable to estimate A-level age.
* based on the assumption that A-levels were taken in June at the end of the school.
* year in which twins reached the age of 18 years.
* This ignores cases, perhaps many of them, where twins might have taken some or all.
* of their A-levels a year or two early or late, because there is insufficient evidence.
* to know the date when most exams were taken for any given twin.
* Cohort 1: A-levels should have been taken in June 2012.
* Hence exam year is assumed to be 2011 + cohort.
* Estimate age only to the nearest month, by subtraction.
* and only compute the age if questionnaire data are present.
IF (rcqdata1 = 1) rcqalage = RND((((2011 + cohort) + (6 / 12)) - (birthyear + (birthmonth / 12))), 0.1).
EXECUTE.
rcbcntime1/2

See rcb2rtime1/2, etc above.

rcbdata1/2, rcbnact1/2, rcbndat1/2, rcbstatus1/2

Variables indicating the status of the Bricks web study battery:
rcbnact1/2 represents the number of activities completed (0 to 9, including consent and comments);
rcbndat1/2 represents the number of tests with meaningful data (0 to 7), after exclusions;
rcbstatus1/2 shows battery status as 0=not started, 1=started, 2=completed;
rcbdata1/2 is a data flag (1=meaningful data present, 0=no useful data).
Derived from the data flag item variables for each of the 9 individual activities (including consent, the questionnaire, 6 subtest and the comments page). See syntax for further details: the comments activity at the end of the battery was treated as non-essential for the purposes of the status and data variables.

* Derived a count of the number of activities completed.
* (up to 9, including consent, questionnaire, 6 subtests and comments).
COMPUTE rcbnact = SUM(rcbcndata, rcbspdata, rcb2rdata, rcb2rvdata,
 rcb2vdata, rcb3rvdata, rcb3rdata, rcb3vdata, rcbcmdata).
EXECUTE.

* Recode the status variable to indicate meaningful web.
* activities done: 0=none (with or without consent).
* 1=some but not all (ignoring comments).
* 2=all (with or without comments).
RECODE rcbnact (0=0) (1=0) (2 THRU 7=1) (8=2) (9=2)
INTO rcbstatus.
EXECUTE.

* Similarly, data flag = 1 if some meaningful web data present.
RECODE rcbstatus (0=0) (1=1) (2=1)
INTO rcbdata.
EXECUTE.

* To take account of missing subtest scores resulting from exclusions.
* Leave rcbnact unchanged as the number of activities completed in the battery.
* and rcbstatus as the overall battery status (completion of activities).
* but add new variable rcbndat as the number of tests with usable data.
IF (rcbdata1 = 1) rcbndat = SUM(rcbspdata, rcb2rdata, rcb2rvdata,
    rcb2vdata, rcb3rvdata, rcb3rdata, rcb3vdata).
EXECUTE.
rcbdurtn1/2

Total duration (in minutes) of the Bricks web study battery, from start to end, if all activities were completed (the final activity, the comments page, was treated as optional, hence require at least 8 of the 9 activities to be completed). Computed as variables representing the start and end time of the battery (these variables are not retained in the dataset).

* overall duration of battery, subtracting overall start time from end time.
* but only computed if at least 8 activities completed.
IF (rcbnact >= 8) rcbdurtn = DATEDIFF(rcbentm, rcbsttm, "seconds") / 60.
EXECUTE.
* Distribution is distorted by extreme outliers: (1) twins who had lengthy pauses within activities.
* and (2) twins who stopped and re-started on a later date.
* Hence recode to missing if greater than 300 minutes (5 hours).
RECODE rcbdurtn (300 THRU HIGHEST=SYSMIS).
EXECUTE.
rcbnact1/2

See rcbdata1/2, rcbnact1/2, rcbstatus1/2 above.

rcbLLCage1/2, rcbLLCdate1/2, rcfLLCage1/2, rcfLLCdate1/2, rckLLCage1/2, rckLLCdate1/2, rcnLLCage1/2, rcnLLCdate1/2, rcpLLCage1/2, rcpLLCdate1/2, rcqalLLCage1/2, rcqalLLCdate1/2, rcqLLCage1/2, rcqLLCdate1/2

Age and date variables derived for use in datasets in the LLC TRE (but not to be used in other datasets).
The variable name prefixes denote the study for which each age or date is computed: rcq (questionnaire), rcp (Perception), rcb (Bricks), rcf (FFMP), rck (Kings Challenge) and rcn (Navigation). The A-levels ages and dates (rcqal) are estimates, based on an assumption of the year and month when the exams were most likely to have been taken.
The LLC date variables contain only the month and year, not the day, as a means of reducing identifiability. The date variables are strings formatted as 'yyyy-mm'. These LLC dates are designed to enable the TEDS measures to be placed in a time sequence with NHS medical diagnosis dates in the data in the TRE.
The LLC age variables are integers measuring the number of months between birth and the given TEDS activity, consistent with the matching LLC date variables.
Variable aonsdob is the twin birth date - the raw date variables are not retained in the dataset.

* First extract year and month as temp variables, from birth date and activity dates.
COMPUTE birthyear = XDATE.YEAR(aonsdob).
COMPUTE birthmonth = XDATE.MONTH(aonsdob).
COMPUTE rcqyear = XDATE.YEAR(rcqrdate1).
COMPUTE rcqmonth = XDATE.MONTH(rcqrdate1).
COMPUTE rcpyear = XDATE.YEAR(rcpcnsttm).
COMPUTE rcpmonth = XDATE.MONTH(rcpcnsttm).
COMPUTE rcbyear = XDATE.YEAR(rcbsttm).
COMPUTE rcbmonth = XDATE.MONTH(rcbsttm).
COMPUTE rcfyear = XDATE.YEAR(rcfsttm).
COMPUTE rcfmonth = XDATE.MONTH(rcfsttm).
COMPUTE rckyear = XDATE.YEAR(rcksttm).
COMPUTE rckmonth = XDATE.MONTH(rcksttm).
COMPUTE rcnyear = XDATE.YEAR(rcncnsttm).
COMPUTE rcnmonth = XDATE.MONTH(rcncnsttm).
EXECUTE.

* The agreed LLC date format is a string yyyy-mm (nominal by default for strings).
* adding '0' where necessary for two-digit months.
STRING rcqLLCdate rcqalLLCdate rcpLLCdate rcbLLCdate rcfLLCdate rckLLCdate rcnLLCdate (A7).
IF (rcqmonth < 10) rcqLLCdate = CONCAT(STRING(rcqyear, F4), '-0', STRING(rcqmonth, F1)).
IF (rcqmonth >= 10) rcqLLCdate = CONCAT(STRING(rcqyear, F4), '-', STRING(rcqmonth, F2)).
IF (rcpmonth < 10) rcpLLCdate = CONCAT(STRING(rcpyear, F4), '-0', STRING(rcpmonth, F1)).
IF (rcpmonth >= 10) rcpLLCdate = CONCAT(STRING(rcpyear, F4), '-', STRING(rcpmonth, F2)).
IF (rcbmonth < 10) rcbLLCdate = CONCAT(STRING(rcbyear, F4), '-0', STRING(rcbmonth, F1)).
IF (rcbmonth >= 10) rcbLLCdate = CONCAT(STRING(rcbyear, F4), '-', STRING(rcbmonth, F2)).
IF (rcfmonth < 10) rcfLLCdate = CONCAT(STRING(rcfyear, F4), '-0', STRING(rcfmonth, F1)).
IF (rcfmonth >= 10) rcfLLCdate = CONCAT(STRING(rcfyear, F4), '-', STRING(rcfmonth, F2)).
IF (rckmonth < 10) rckLLCdate = CONCAT(STRING(rckyear, F4), '-0', STRING(rckmonth, F1)).
IF (rckmonth >= 10) rckLLCdate = CONCAT(STRING(rckyear, F4), '-', STRING(rckmonth, F2)).
IF (rcnmonth < 10) rcnLLCdate = CONCAT(STRING(rcnyear, F4), '-0', STRING(rcnmonth, F1)).
IF (rcnmonth >= 10) rcnLLCdate = CONCAT(STRING(rcnyear, F4), '-', STRING(rcnmonth, F2)).
EXECUTE.

* The agreed LLC age variable is in integer months.
* and it must agree with the birth and booklet year/month variables that will be available in the LLC.
COMPUTE rcqLLCage = (rcqmonth + (rcqyear * 12)) - (birthmonth + (birthyear * 12)).
COMPUTE rcpLLCage = (rcpmonth + (rcpyear * 12)) - (birthmonth + (birthyear * 12)).
COMPUTE rcbLLCage = (rcbmonth + (rcbyear * 12)) - (birthmonth + (birthyear * 12)).
COMPUTE rcfLLCage = (rcfmonth + (rcfyear * 12)) - (birthmonth + (birthyear * 12)).
COMPUTE rckLLCage = (rckmonth + (rckyear * 12)) - (birthmonth + (birthyear * 12)).
COMPUTE rcnLLCage = (rcnmonth + (rcnyear * 12)) - (birthmonth + (birthyear * 12)).
EXECUTE.

* A-level age and date.
* We don't have the actual dates when A-level exams were taken.
* so we make the assumption (probably accurate in most cases).
* that the exams were taken in June at the end of the academic.
* year in which they reached age 18 years.
* This is 2011 plus the cohort number (1, 2, 3 or 4).
* The LLC version of the age is an integer number of months.
IF (rcqdata1 = 1) rcqalLLCage = (6 + ((2011 + cohort) * 12)) - (birthmonth + (birthyear * 12)).
* The LLC date is then inferred (or guessed) based purely on the cohort.
IF (rcqdata1 = 1) rcqalLLCdate = CONCAT(STRING((2011 + cohort), F4), '-06').
EXECUTE.
rcbrt1/2, rcbrvt1/2

See rcb2dt1/2, etc above.

rcbspsabm1/2, rcbspgnxm1/2, rcbspmnxm1/2, rcbspsnxm1/2

Scales for the spatial abilities questionnaire of the Bricks web study:
rcbspsabm1/2 is the spatial abilities subscale;
rcbspsnxm1/2 is the spatial anxiety subscale;
rcbspmnxm1/2 is the maths anxiety subscale;
rcbspgnxm1/2 is the general anxiety subscale.
Derived from relevant items (reversed where necessary) of the spatial abilities questionnaire. The syntax requires at least half the items to be non-missing for each scale, although web activity validation rules should ensure that either all or none of the items are in fact present.

* Add scales for the spaa questionnaire measures.
* using reversed items where appropriate.
* Derive as the mean of all items in each measure, requiring at least half to be present.
* (although web rules should ensure that all or none are present).
COMPUTE rcbspsabm = MEAN.4(rcbspsab1r, rcbspsab2r, rcbspsab3r,
 rcbspsab4, rcbspsab5r, rcbspsab6, rcbspsab7r, rcbspsab8).
COMPUTE rcbspsnxm = MEAN.5(rcbspsnx01, rcbspsnx02, rcbspsnx03,
 rcbspsnx04, rcbspsnx05, rcbspsnx06, rcbspsnx07,
 rcbspsnx08, rcbspsnx09, rcbspsnx10).
COMPUTE rcbspmnxm = MEAN.5(rcbspmnx1, rcbspmnx2, rcbspmnx3,
 rcbspmnx4, rcbspmnx5, rcbspmnx6, rcbspmnx7, rcbspmnx8, rcbspmnx9).
COMPUTE rcbspgnxm = MEAN.4(rcbspgnx1, rcbspgnx2, rcbspgnx3,
 rcbspgnx4, rcbspgnx5, rcbspgnx6, rcbspgnx7).
EXECUTE.
rcbsptime1/2

See rcb2rtime1/2, etc above.

rcbstatus1/2

See rcbdata1/2, rcbnact1/2, rcbstatus1/2 above.

rcbt1/2

See rcb2dt1/2, etc above.

rcbtime1/2

Total time (in minutes) spent on the activities of the Bricks web study battery, if all activities were completed (the final activity, the comments page, was treated as optional, hence require at least 8 of the 9 activities to be completed). Computed as the sum of the times for the individual activities (these are derived variables described elsewhere on this page).

* total activity time: sum the activity times (require at least 8 to be present).
COMPUTE rcbtime = SUM.8(rcbcntime, rcbsptime, rcb2rtime,
 rcb2rvtime, rcb2vtime, rcb3rvtime, rcb3rtime, rcb3vtime).
EXECUTE.
rcbvt1/2

See rcb2dt1/2, etc above.

rcfage1/2

See rcbage1/2, rcfage1/2, rckage1/2, rcnage1/2, rcpage1/2, rcqage1/2 above.

rcfbgbmi1/2

Twin BMI, derived from height and weight reported in the FFMP questionnaire. The BMI is measured in kilograms per square metre. Extreme outliers in the BMI, and in the height and weight, are removed.

* Height variable is in centimetres.
* We want BMI in units of kilograms per square metre.
* So include a scaling factor of 10000 in the BMI calculation.
COMPUTE rcfbgbmi = 10000 * rcfbgwtkg / (rcfbghtcm * rcfbghtcm).
EXECUTE.

* Remove extreme outliers in height, weight and BMI.
* Use cut-offs similar to those used at age 16.
* slightly adapted according to observed frequencies here.
* Where outliers occur, assume height, weight and BMI are all unreliable and remove.
DO IF (~RANGE(rcfbghtcm, 145, 202) | ~RANGE(rcfbgwtkg, 35, 118) | ~RANGE(rcfbgbmi, 14, 41)).
 RECODE rcfbghtcm rcfbgwtkg rcfbgbmi (ELSE=SYSMIS).
END IF.
EXECUTE.
rcfbgtime1/2, rcfcntime1/2, rcffastime1/2, rcffd1time1/2, rcffd2time1/2, rcffd3time1/2, rcfmustime1/2

Duration of FFMP study web activities, measured in minutes as the interval between the recorded start and end time of each activity. The activities are consent (rcfcntime1/2), background (rcfbgtime1/2), fashion (rcffastime1/2) the 3 food sections (rcffd1time1/2, rcffd2time1/2, rcffd3time1/2) and music (rcfmustime1/2). Computed from start and end date/time item variables recorded for each activity. These date/time variables are not retained in the dataset.

* Variables recording length of time spent on each activity (minutes).
* Activity times: subtract start time from end time.
COMPUTE rcfcntime = DATEDIFF(rcfcnentm, rcfcnsttm, "seconds") / 60.
COMPUTE rcfbgtime = DATEDIFF(rcfbgentm, rcfbgsttm, "seconds") / 60.
COMPUTE rcffastime = DATEDIFF(rcffasentm, rcffassttm, "seconds") / 60.
COMPUTE rcffd1time = DATEDIFF(rcffd1entm, rcffd1sttm, "seconds") / 60.
COMPUTE rcffd2time = DATEDIFF(rcffd2entm, rcffd2sttm, "seconds") / 60.
COMPUTE rcffd3time = DATEDIFF(rcffd3entm, rcffd3sttm, "seconds") / 60.
COMPUTE rcfmustime = DATEDIFF(rcfmusentm, rcfmussttm, "seconds") / 60.
EXECUTE.
* Activities do not have time limits, so twins could pause indefinitely.
* with the browser open without any meaningful activity.
* Hence very long times are meaningless: recode to missing.
* if more than 90 minutes (activities) or more than 30 minutes (consent).
RECODE rcfbgtime rcffastime rcffd1time rcffd2time rcffd3time rcfmustime (90 THRU HIGHEST=SYSMIS).
RECODE rcfcntime (30 THRU HIGHEST=SYSMIS).
EXECUTE.
rcfdata1/2, rcfnact1/2, rcfstatus1/2

Variables indicating the status of the FFMP web study battery:
rcfnact1/2 represents the number of activities completed (0 to 7);
rcfstatus1/2 shows battery status as 0=not started, 1=started, 2=completed;
rcfdata1/2 is a data flag (1=meaningful data present, 0=no useful data).
Derived from the data flag item variables for each of the 7 individual activities (including consent and the 6 questionnaire sections).

* Add a count of the number of activities completed.
COMPUTE rcfnact = SUM(rcfcndata, rcfbgdata, rcffasdata,
 rcffd1data, rcffd2data, rcffd3data, rcfmusdata).
EXECUTE.

* Recode the status variable to indicate meaningful web.
* activities done: 0=none (with or without consent).
* 1=some but not all, 2=all 7 activities.
RECODE rcfnact (0=0) (1=0) (2 THRU 6=1) (7=2)
INTO rcfstatus.
EXECUTE.
* Similarly, data flag = 1 if some meaningful web data present.
RECODE rcfstatus (0=0) (1=1) (2=1)
INTO rcfdata.
EXECUTE.
rcfdurtn1/2

Total duration (in minutes) of the FFMP web study battery, from start to end, if all 7 activities were completed. Computed from variables representing the start and end time of the battery (these are not retained in the dataset), and using rcfnact1/2, the number of activities completed, which is a derived variable described elsewhere on this page.

* overall duration, subtracting overall start time from end time.
* but only if all 7 activities completed.
IF (rcfnact = 7) rcfdurtn = DATEDIFF(rcfentm, rcfsttm, "seconds") / 60.
EXECUTE.
* Distribution is distorted by extreme outliers: (1) twins who had lengthy pauses within activities.
* and (2) twins who stopped and re-started on a later date.
* Hence recode to missing if greater than 300 minutes (5 hours).
RECODE rcfdurtn (300 THRU HIGHEST=SYSMIS).
EXECUTE.
rcffastime1/2

See rcfbgtime1/2, etc above.

rcffd1time1/2, rcffd2time1/2, rcffd3time1/2, rcfmustime1/2

See rcfbgtime1/2, etc above.

rcfnact1/2, rcfstatus1/2

See rcfdata1/2, rcfnact1/2, rcfstatus1/2 above.

rcfLLCage1/2, rcfLLCdate1/2

See rcbLLCage1/2, etc above.

rcftime1/2

Total time (in minutes) spent on the activities of the FFMP web study battery, if all 7 activities were completed. Computed as the sum of the times for the individual activities (these are derived variables described elsewhere on this page).

* total activity time: sum the activity times (require all 7 to be present).
COMPUTE rcftime = SUM.7(rcfcntime, rcfbgtime, rcffastime,
 rcffd1time, rcffd2time, rcffd3time, rcfmustime).
EXECUTE.
rck2d1an1/2, rck2d2an1/2, rck2d3an1/2, rck2d4an1/2, rck2d5an1/2, rck3d1an1/2, rck3d2an1/2, rck3d3an1/2, rck3d4an1/2, rck3d5an1/2, rck3d6an1/2, rck3d7an1/2

Coded responses for items of the 2D and 3D Kings Challenge tests. The raw item response variables (rck2dXans, rck3dXans) are complex strings containing detailed information about every line drawn for each item of these tests. These raw string variables are replaced in the dataset with much simpler coded numeric variables (rck2dXan, rck3dan) as shown in the syntax below. The numeric coding is -1=timed out with no meaningful drawing completed, -4=item interrupted with loss of data, 1=item completed within time limit but without a meaningful drawing (zero score), 2=time limit was exceeded but a meaningful drawing was made, 3=item completed within time limit with a meaningful drawing.

* Interrupted items: string responses may be coded as '[]' or '' or '-1'.
* and the item response time will be less than the time limit.
* Recode new numeric response variables, not string variables, to -4.
IF (ANY(rck2d1ans, '', '-1', '[]') & rck2d1rt < 45000) rck2d1an = -4.
IF (ANY(rck2d2ans, '', '-1', '[]') & rck2d2rt < 45000) rck2d2an = -4.
IF (ANY(rck2d3ans, '', '-1', '[]') & rck2d3rt < 45000) rck2d3an = -4.
IF (ANY(rck2d4ans, '', '-1', '[]') & rck2d4rt < 45000) rck2d4an = -4.
IF (ANY(rck2d5ans, '', '-1', '[]') & rck2d5rt < 45000) rck2d5an = -4.
EXECUTE.
IF (ANY(rck3d1ans, '', '-1', '[]') & rck3d1rt < 70000) rck3d1an = -4.
IF (ANY(rck3d2ans, '', '-1', '[]') & rck3d2rt < 70000) rck3d2an = -4.
IF (ANY(rck3d3ans, '', '-1', '[]') & rck3d3rt < 70000) rck3d3an = -4.
IF (ANY(rck3d4ans, '', '-1', '[]') & rck3d4rt < 70000) rck3d4an = -4.
IF (ANY(rck3d5ans, '', '-1', '[]') & rck3d5rt < 70000) rck3d5an = -4.
IF (ANY(rck3d6ans, '', '-1', '[]') & rck3d6rt < 70000) rck3d6an = -4.
IF (ANY(rck3d7ans, '', '-1', '[]') & rck3d7rt < 70000) rck3d7an = -4.
EXECUTE.

* An item timeout applies, but any input made by a twin before the timeout.
* is still submitted and scored, hence a timeout can mean a non-zero score.
* Therefore, only record a timeout code of -1 if the time limit was reached.
* either with a zero score or with no lines drawn.
IF ((ANY(rck2d1ans,'','-1','[]') | rck2d1sc = 0) & rck2d1rt >= 45000) rck2d1an = -1.
IF ((ANY(rck2d2ans,'','-1','[]') | rck2d2sc = 0) & rck2d2rt >= 45000) rck2d2an = -1.
IF ((ANY(rck2d3ans,'','-1','[]') | rck2d3sc = 0) & rck2d3rt >= 45000) rck2d3an = -1.
IF ((ANY(rck2d4ans,'','-1','[]') | rck2d4sc = 0) & rck2d4rt >= 45000) rck2d4an = -1.
IF ((ANY(rck2d5ans,'','-1','[]') | rck2d5sc = 0) & rck2d5rt >= 45000) rck2d5an = -1.
EXECUTE.
IF ((ANY(rck3d1ans,'','-1','[]') | rck3d1sc = 0) & rck3d1rt >= 70000) rck3d1an = -1.
IF ((ANY(rck3d2ans,'','-1','[]') | rck3d2sc = 0) & rck3d2rt >= 70000) rck3d2an = -1.
IF ((ANY(rck3d3ans,'','-1','[]') | rck3d3sc = 0) & rck3d3rt >= 70000) rck3d3an = -1.
IF ((ANY(rck3d4ans,'','-1','[]') | rck3d4sc = 0) & rck3d4rt >= 70000) rck3d4an = -1.
IF ((ANY(rck3d5ans,'','-1','[]') | rck3d5sc = 0) & rck3d5rt >= 70000) rck3d5an = -1.
IF ((ANY(rck3d6ans,'','-1','[]') | rck3d6sc = 0) & rck3d6rt >= 70000) rck3d6an = -1.
IF ((ANY(rck3d7ans,'','-1','[]') | rck3d7sc = 0) & rck3d7rt >= 70000) rck3d7an = -1.
EXECUTE.

* Code numeric response as 1 if completed within the time limit but with a zero score.
* and a meaningful input (not crashed).
IF ((~ANY(rck2d1ans,'','-1','[]') & rck2d1sc = 0) & rck2d1rt < 45000) rck2d1an = 1.
IF ((~ANY(rck2d2ans,'','-1','[]') & rck2d2sc = 0) & rck2d2rt < 45000) rck2d2an = 1.
IF ((~ANY(rck2d3ans,'','-1','[]') & rck2d3sc = 0) & rck2d3rt < 45000) rck2d3an = 1.
IF ((~ANY(rck2d4ans,'','-1','[]') & rck2d4sc = 0) & rck2d4rt < 45000) rck2d4an = 1.
IF ((~ANY(rck2d5ans,'','-1','[]') & rck2d5sc = 0) & rck2d5rt < 45000) rck2d5an = 1.
EXECUTE.
IF ((~ANY(rck3d1ans,'','-1','[]') & rck3d1sc = 0) & rck3d1rt < 70000) rck3d1an = 1.
IF ((~ANY(rck3d2ans,'','-1','[]') & rck3d2sc = 0) & rck3d2rt < 70000) rck3d2an = 1.
IF ((~ANY(rck3d3ans,'','-1','[]') & rck3d3sc = 0) & rck3d3rt < 70000) rck3d3an = 1.
IF ((~ANY(rck3d4ans,'','-1','[]') & rck3d4sc = 0) & rck3d4rt < 70000) rck3d4an = 1.
IF ((~ANY(rck3d5ans,'','-1','[]') & rck3d5sc = 0) & rck3d5rt < 70000) rck3d5an = 1.
IF ((~ANY(rck3d6ans,'','-1','[]') & rck3d6sc = 0) & rck3d6rt < 70000) rck3d6an = 1.
IF ((~ANY(rck3d7ans,'','-1','[]') & rck3d7sc = 0) & rck3d7rt < 70000) rck3d7an = 1.
EXECUTE.

* Code as 2 if the time limit was exceeded but the twin made some meaningful input.
* and scored more than 0.
IF ((~ANY(rck2d1ans,'','-1','[]') & rck2d1sc > 0) & rck2d1rt >= 45000) rck2d1an = 2.
IF ((~ANY(rck2d2ans,'','-1','[]') & rck2d2sc > 0) & rck2d2rt >= 45000) rck2d2an = 2.
IF ((~ANY(rck2d3ans,'','-1','[]') & rck2d3sc > 0) & rck2d3rt >= 45000) rck2d3an = 2.
IF ((~ANY(rck2d4ans,'','-1','[]') & rck2d4sc > 0) & rck2d4rt >= 45000) rck2d4an = 2.
IF ((~ANY(rck2d5ans,'','-1','[]') & rck2d5sc > 0) & rck2d5rt >= 45000) rck2d5an = 2.
EXECUTE.
IF ((~ANY(rck3d1ans,'','-1','[]') & rck3d1sc > 0) & rck3d1rt >= 70000) rck3d1an = 2.
IF ((~ANY(rck3d2ans,'','-1','[]') & rck3d2sc > 0) & rck3d2rt >= 70000) rck3d2an = 2.
IF ((~ANY(rck3d3ans,'','-1','[]') & rck3d3sc > 0) & rck3d3rt >= 70000) rck3d3an = 2.
IF ((~ANY(rck3d4ans,'','-1','[]') & rck3d4sc > 0) & rck3d4rt >= 70000) rck3d4an = 2.
IF ((~ANY(rck3d5ans,'','-1','[]') & rck3d5sc > 0) & rck3d5rt >= 70000) rck3d5an = 2.
IF ((~ANY(rck3d6ans,'','-1','[]') & rck3d6sc > 0) & rck3d6rt >= 70000) rck3d6an = 2.
IF ((~ANY(rck3d7ans,'','-1','[]') & rck3d7sc > 0) & rck3d7rt >= 70000) rck3d7an = 2.
EXECUTE.

* Code as 3 if the twin made some meaningful input and scored more than 0.
* and submitted their response within the time limit.
IF ((~ANY(rck2d1ans,'','-1','[]') & rck2d1sc > 0) & rck2d1rt < 45000) rck2d1an = 3.
IF ((~ANY(rck2d2ans,'','-1','[]') & rck2d2sc > 0) & rck2d2rt < 45000) rck2d2an = 3.
IF ((~ANY(rck2d3ans,'','-1','[]') & rck2d3sc > 0) & rck2d3rt < 45000) rck2d3an = 3.
IF ((~ANY(rck2d4ans,'','-1','[]') & rck2d4sc > 0) & rck2d4rt < 45000) rck2d4an = 3.
IF ((~ANY(rck2d5ans,'','-1','[]') & rck2d5sc > 0) & rck2d5rt < 45000) rck2d5an = 3.
EXECUTE.
IF ((~ANY(rck3d1ans,'','-1','[]') & rck3d1sc > 0) & rck3d1rt < 70000) rck3d1an = 3.
IF ((~ANY(rck3d2ans,'','-1','[]') & rck3d2sc > 0) & rck3d2rt < 70000) rck3d2an = 3.
IF ((~ANY(rck3d3ans,'','-1','[]') & rck3d3sc > 0) & rck3d3rt < 70000) rck3d3an = 3.
IF ((~ANY(rck3d4ans,'','-1','[]') & rck3d4sc > 0) & rck3d4rt < 70000) rck3d4an = 3.
IF ((~ANY(rck3d5ans,'','-1','[]') & rck3d5sc > 0) & rck3d5rt < 70000) rck3d5an = 3.
IF ((~ANY(rck3d6ans,'','-1','[]') & rck3d6sc > 0) & rck3d6rt < 70000) rck3d6an = 3.
IF ((~ANY(rck3d7ans,'','-1','[]') & rck3d7sc > 0) & rck3d7rt < 70000) rck3d7an = 3.
EXECUTE.
rck2dtime1/2, rck3dtime1/2, rckcntime1/2, rckcstime1/2, rckemtime1/2, rckmatime1/2, rckmrtime1/2, rckpatime1/2, rckpftime1/2, rckpttime1/2, rcksrtime1/2

Duration of Kings Challenge study web activities, measured in minutes as the interval between the recorded start and end time of each activity. The activities are consent (rckcntime1/2), and the 10 kings challenge subtests (labelled 2d, 3d, cs, em, ma, mr, pa, pf, pt, sr). Computed from start and end date/time item variables recorded for each activity. These date/time variables are not retained in the dataset.

* Activity times: subtract start time from end time.
COMPUTE rckcntime = DATEDIFF(rckcnentm, rckcnsttm, "seconds") / 60.
COMPUTE rckcstime = DATEDIFF(rckcsentm, rckcssttm, "seconds") / 60.
COMPUTE rck2dtime = DATEDIFF(rck2dentm, rck2dsttm, "seconds") / 60.
COMPUTE rckpatime = DATEDIFF(rckpaentm, rckpasttm, "seconds") / 60.
COMPUTE rckemtime = DATEDIFF(rckementm, rckemsttm, "seconds") / 60.
COMPUTE rckmrtime = DATEDIFF(rckmrentm, rckmrsttm, "seconds") / 60.
COMPUTE rckpftime = DATEDIFF(rckpfentm, rckpfsttm, "seconds") / 60.
COMPUTE rck3dtime = DATEDIFF(rck3dentm, rck3dsttm, "seconds") / 60.
COMPUTE rcksrtime = DATEDIFF(rcksrentm, rcksrsttm, "seconds") / 60.
COMPUTE rckpttime = DATEDIFF(rckptentm, rckptsttm, "seconds") / 60.
COMPUTE rckmatime = DATEDIFF(rckmaentm, rckmasttm, "seconds") / 60.
EXECUTE.
* Activities did have item time limits, but it was possible to pause indefinitely.
* for example at the practice item; also, it was possible to halt a test.
* then continue at a later time or later date; hence a small number.
* of very long times exist, and these are meaningless in terms of real.
* activity times;  recode extremes to missing.
* if more than 90 minutes (activities) or more than 30 minutes (consent).
RECODE rckcstime rck2dtime rckpatime rckemtime rckmrtime
 rckpftime rck3dtime rcksrtime rckpttime rckmatime (90 THRU HIGHEST=SYSMIS).
RECODE rckcntime (30 THRU HIGHEST=SYSMIS).
EXECUTE.
rck2dtmn1/2, rck3dtmn1/2, rckcstmn1/2, rckmatmn1/2, rckmrtmn1/2, rckpatmn1/2, rckpftmn1/2, rckpttmn1/2, rcksrtmn1/2

Mean item response time (in seconds) for the 9 Kings Challenge subtests having meaningful item times (labelled 2d, 3d, cs, ma, mr, pa, pf, pt, sr). Computed from the response time item variables for every item (excluding practice items) in each subtest.

* Average response time (in seconds) for each subtest: compute as the mean.
* (note extreme values already removed), excluding practice items.
* Omit em test, where item times are meaningless.
COMPUTE rckcstmn = MEAN(rckcs01rt, rckcs02rt, rckcs03rt, rckcs04rt,
 rckcs05rt, rckcs06rt, rckcs07rt, rckcs08rt, rckcs09rt, rckcs10rt,
 rckcs11rt, rckcs12rt, rckcs13rt, rckcs14rt, rckcs15rt) / 1000.
COMPUTE rck2dtmn = MEAN(rck2d1rt, rck2d2rt, rck2d3rt, rck2d4rt, rck2d5rt) / 1000.
COMPUTE rckpatmn = MEAN(rckpa01rt, rckpa02rt, rckpa03rt, rckpa04rt,
 rckpa05rt, rckpa06rt, rckpa07rt, rckpa08rt, rckpa09rt, rckpa10rt,
 rckpa11rt, rckpa12rt, rckpa13rt, rckpa14rt, rckpa15rt) / 1000.
COMPUTE rckmrtmn = MEAN(rckmr01rt, rckmr02rt, rckmr03rt, rckmr04rt,
 rckmr05rt, rckmr06rt, rckmr07rt, rckmr08rt, rckmr09rt, rckmr10rt,
 rckmr11rt, rckmr12rt, rckmr13rt, rckmr14rt, rckmr15rt, rckmr16rt) / 1000.
COMPUTE rckpftmn = MEAN(rckpf01rt, rckpf02rt, rckpf03rt, rckpf04rt,
 rckpf05rt, rckpf06rt, rckpf07rt, rckpf08rt, rckpf09rt, rckpf10rt,
 rckpf11rt, rckpf12rt, rckpf13rt, rckpf14rt, rckpf15rt) / 1000.
COMPUTE rck3dtmn = MEAN(rck3d1rt, rck3d2rt, rck3d3rt, rck3d4rt, rck3d5rt, rck3d6rt, rck3d7rt) / 1000.
COMPUTE rcksrtmn = MEAN(rcksr01rt, rcksr02rt, rcksr03rt, rcksr04rt,
 rcksr05rt, rcksr06rt, rcksr07rt, rcksr08rt, rcksr09rt, rcksr10rt,
 rcksr11rt, rcksr12rt, rcksr13rt, rcksr14rt, rcksr15rt) / 1000.
COMPUTE rckpttmn = MEAN(rckpt01rt, rckpt02rt, rckpt03rt, rckpt04rt,
 rckpt05rt, rckpt06rt, rckpt07rt, rckpt08rt, rckpt09rt, rckpt10rt,
 rckpt11rt, rckpt12rt, rckpt13rt, rckpt14rt, rckpt15rt) / 1000.
COMPUTE rckmatmn = MEAN(rckma01rt, rckma02rt, rckma03rt, rckma04rt,
 rckma05rt, rckma06rt, rckma07rt, rckma08rt, rckma09rt, rckma10rt) / 1000.
EXECUTE.
rckage1/2

See rcbage1/2, rcfage1/2, rckage1/2, rcnage1/2, rcpage1/2, rcqage1/2 above.

rckdata1/2, rcknact1/2, rckndat1/2, rckstatus1/2

Variables indicating the status of the Kings Challenge web study battery:
rcknact1/2 represents the number of activities completed (0 to 11), including consent;
rckndat1/2 represents the number of tests with meaningful data (0 to 10), after exclusions;
rckstatus1/2 shows battery status as 0=not started, 1=started, 2=completed;
rckdata1/2 is a data flag (1=meaningful data present, 0=no useful data).
Derived from the data flag item variables for each of the 11 activities (consent plus the 10 tests). See syntax for further details of derivation.

Note that the syntax below omits a lengthy script for test cleaning, to identify compromised test data. After cleaning, compromised instances of twin tests are removed (recoded to missing) resulting in a difference between rcknact1/2 and rckndat1/2.

* Add a count of the number of activities completed, including consent.
COMPUTE rcknact = SUM(rckcndata, rckcsdata, rck2ddata, rckpadata, rckemdata,
 rckmrdata, rckpfdata, rck3ddata, rcksrdata, rckptdata, rckmadata).
EXECUTE.

* Recode the status variable to indicate whether meaningful web.
* activities done: 0=none (with or without consent).
* 1=some but not all, 2=all 11 activities.
RECODE rcknact (0=0) (1=0) (2 THRU 10=1) (11=2)
INTO rckstatus.
EXECUTE.
* Similarly, data flag = 1 if some meaningful web data is present (not just consent).
RECODE rckstatus (0=0) (1=1) (2=1)
INTO rckdata.
EXECUTE.

* [Lengthy syntax omitted here: identification of instances within each test.
*  where data are compromised due to loss of data (because of frequent item.
*  timeouts or interruptions) or due to random responders (twins responding.
*  quickly and without apparent thought in order to complete the test).
*  Where such instances are found, the test status is recoded from 2 to 3 or 4 respectively.
*  and the test data flag is recoded from 1 to 0.
*  and the test item variables are recoded to missing].

* To take account of missing subtest scores resulting from exclusions.
* Leave rcknact as the number of activities completed in the battery.
* and leave rckstatus as the overall battery status (completion of activities).
* but add new variable rckndat as the number of tests with usable data.
IF (rckdata1 = 1) rckndat = SUM(rckcsdata, rck2ddata, rckpadata, rckemdata,
 rckmrdata, rckpfdata, rck3ddata, rcksrdata, rckptdata, rckmadata).
EXECUTE.
rckdurtn1/2

Total duration (in minutes) of the Kings Challenge web study battery, from start to end, if all 11 activities were completed (consent plus 10 web tests). Computed from variables representing the start and end time of the battery (these variables are not retained in the dataset).

* overall duration, subtracting overall start time from end time.
* but only if all 11 activities were completed.
IF (rcknact >= 11) rckdurtn = DATEDIFF(rckentm, rcksttm, "seconds") / 60.
EXECUTE.
* Distribution is distorted by extreme outliers: (1) twins who had lengthy pauses within activities.
* and (2) twins who stopped and re-started on a later date.
* Hence recode to missing if greater than 300 minutes (5 hours).
RECODE rckdurtn (300 THRU HIGHEST=SYSMIS).
EXECUTE.
rckem01an1/2, rckem02an1/2, rckem03an1/2, rckem04an1/2, rckem05an1/2, rckem06an1/2, rckem07an1/2, rckem08an1/2, rckem09an1/2, rckem10an1/2

Coded responses for items of the Elithorn Mazes Kings Challenge test. The raw item response variables (rckemXXans) are complex strings containing detailed information about the path of the line on screen for each item. These raw string variables are replaced in the dataset with much simpler coded numeric variables (rckemXXan) as shown in the syntax below. The numeric coding is -1=timed out with no keyboard input (default path), -4=item interrupted with loss of data, 1=item completed but without apparent meaningful input (zero score), 2=item completed with meaningful input (non-zero score).

* For this test, there is no timeout in the conventional sense so codes of '-1' or '[]'.
* will always represent interrupted items; check also for '' (empty strings).
* but only in cases where items were actually presented (displayed=1).
* and there is no need to check the response time.
IF (ANY(rckem01ans, '', '-1', '[]') & rckem01ds = 1) rckem01an = -4.
IF (ANY(rckem02ans, '', '-1', '[]') & rckem02ds = 1) rckem02an = -4.
IF (ANY(rckem03ans, '', '-1', '[]') & rckem03ds = 1) rckem03an = -4.
IF (ANY(rckem04ans, '', '-1', '[]') & rckem04ds = 1) rckem04an = -4.
IF (ANY(rckem05ans, '', '-1', '[]') & rckem05ds = 1) rckem05an = -4.
IF (ANY(rckem06ans, '', '-1', '[]') & rckem06ds = 1) rckem06an = -4.
IF (ANY(rckem07ans, '', '-1', '[]') & rckem07ds = 1) rckem07an = -4.
IF (ANY(rckem08ans, '', '-1', '[]') & rckem08ds = 1) rckem08an = -4.
IF (ANY(rckem09ans, '', '-1', '[]') & rckem09ds = 1) rckem09an = -4.
IF (ANY(rckem10ans, '', '-1', '[]') & rckem10ds = 1) rckem10an = -4.
EXECUTE.

* Twins must provide keyboard input to responde to a moving image on screen.
* Each item effectively has a constant time of about 7 seconds.
* (subject to factors like loading the initial image on screen).
* If twin provides no keyboard input, response is a default string.
* so treat these instances as timeouts and recode the numeric response variable to -1.
IF (rckem01ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7]]') rckem01an = -1.
IF (rckem02ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7]]') rckem02an = -1.
IF (rckem03ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8]]') rckem03an = -1.
IF (rckem04ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8]]') rckem04an = -1.
IF (rckem05ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8]]') rckem05an = -1.
IF (rckem06ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9]]') rckem06an = -1.
IF (rckem07ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10]]') rckem07an = -1.
IF (rckem08ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10]]') rckem08an = -1.
IF (rckem09ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11]]') rckem09an = -1.
IF (rckem10ans = '[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11]]') rckem10an = -1.
EXECUTE.
* Such default responses generally have non-zero scores; recode to 0.
IF (rckem01an = -1) rckem01sc = 0.
IF (rckem02an = -1) rckem02sc = 0.
IF (rckem03an = -1) rckem03sc = 0.
IF (rckem04an = -1) rckem04sc = 0.
IF (rckem05an = -1) rckem05sc = 0.
IF (rckem06an = -1) rckem06sc = 0.
IF (rckem07an = -1) rckem07sc = 0.
IF (rckem08an = -1) rckem08sc = 0.
IF (rckem09an = -1) rckem09sc = 0.
IF (rckem10an = -1) rckem10sc = 0.
EXECUTE.
* Hence recompute the total test scores.
COMPUTE rckemtot = SUM(rckem01sc, rckem02sc, rckem03sc, rckem04sc, rckem05sc,
 rckem06sc, rckem07sc, rckem08sc, rckem09sc, rckem10sc).
EXECUTE.
COMPUTE rckemtotp = 100 * (rckemtot / 10).
EXECUTE.

* If item not interrupted and not the default response as above, recode.
* as value 1 if twin scored zero.
IF (SYSMIS(rckem01an) & rckem01sc = 0) rckem01an = 1.
IF (SYSMIS(rckem02an) & rckem02sc = 0) rckem02an = 1.
IF (SYSMIS(rckem03an) & rckem03sc = 0) rckem03an = 1.
IF (SYSMIS(rckem04an) & rckem04sc = 0) rckem04an = 1.
IF (SYSMIS(rckem05an) & rckem05sc = 0) rckem05an = 1.
IF (SYSMIS(rckem06an) & rckem06sc = 0) rckem06an = 1.
IF (SYSMIS(rckem07an) & rckem07sc = 0) rckem07an = 1.
IF (SYSMIS(rckem08an) & rckem08sc = 0) rckem08an = 1.
IF (SYSMIS(rckem09an) & rckem09sc = 0) rckem09an = 1.
IF (SYSMIS(rckem10an) & rckem10sc = 0) rckem10an = 1.
EXECUTE.
* or 2 if twin scored more than zero.
IF (SYSMIS(rckem01an) & rckem01sc > 0) rckem01an = 2.
IF (SYSMIS(rckem02an) & rckem02sc > 0) rckem02an = 2.
IF (SYSMIS(rckem03an) & rckem03sc > 0) rckem03an = 2.
IF (SYSMIS(rckem04an) & rckem04sc > 0) rckem04an = 2.
IF (SYSMIS(rckem05an) & rckem05sc > 0) rckem05an = 2.
IF (SYSMIS(rckem06an) & rckem06sc > 0) rckem06an = 2.
IF (SYSMIS(rckem07an) & rckem07sc > 0) rckem07an = 2.
IF (SYSMIS(rckem08an) & rckem08sc > 0) rckem08an = 2.
IF (SYSMIS(rckem09an) & rckem09sc > 0) rckem09an = 2.
IF (SYSMIS(rckem10an) & rckem10sc > 0) rckem10an = 2.
EXECUTE.
rckLLCage1/2, rckLLCdate1/2

See rcbLLCage1/2, etc above.

rcktime1/2

Total time (in minutes) spent on the activities of the Kings Challenge web study battery, if all activities were completed. Includes consent plus the 10 web tests. Computed as the sum of the times for the individual activities (these are derived variables described elsewhere on this page).

* total activity time: sum the activity times.
* (require at all 11 to be present).
COMPUTE rcktime = SUM.11(rckcntime, rckcstime, rck2dtime, rckpatime,
 rckemtime, rckmrtime, rckpftime, rck3dtime, rcksrtime, rckpttime, rckmatime).
EXECUTE.
rcnage1/2

See rcbage1/2, rcfage1/2, rckage1/2, rcnage1/2, rcpage1/2, rcqage1/2 above.

rcnas1/2, rcnss1/2, rcnts1/2

Overall scores for the entire Navigation web study battery.
rcnas1/2 is the accuracy score;
rcnss1/2 is the speed score;
rcnts1/2 is the total score.
Each is derived as the mean of the respective scores for the 6 mission types, requiring all 6 to be present.

* Grand total scores over all mission types.
* Derive as a mean, requiring all 6 to be present.
COMPUTE rcnas = MEAN.6(rcnodas, rcnolas, rcnmnas, rcnmwas, rcnpsas, rcnscas).
COMPUTE rcnss = MEAN.6(rcnodss, rcnolss, rcnmnss, rcnmwss, rcnpsss, rcnscss).
COMPUTE rcnts = MEAN.6(rcnodts, rcnolts, rcnmnts, rcnmwts, rcnpsts, rcnscts).
EXECUTE.
rcncntime1/2, rcnmnXtime1/2, rcnmwXtime1/2, rcnodXtime1/2, rcnolXtime1/2, rcnpsXtime1/2, rcnscXtime1/2

Duration of Navigation study web activities, measured in minutes as the interval between the recorded start and end time of each activity. The activities include the consent (rcncntime1/2) and the 30 missions (tests). There are 6 mission types (denoted mn, mw, od, ol, ps, sc); and there are 5 missions of each type (denoted above by X, which has values 1 to 5). These variables are computed from the start and end date/time item variables recorded for each activity. These date/time variables are not retained in the dataset.

* Activity times: subtract start time from end time (including consent).
COMPUTE rcncntime = DATEDIFF(rcncnentm, rcncnsttm, 'seconds') / 60.
COMPUTE rcnod1time = DATEDIFF(rcnod1entm, rcnod1sttm, 'seconds') / 60.
COMPUTE rcnod2time = DATEDIFF(rcnod2entm, rcnod2sttm, 'seconds') / 60.
COMPUTE rcnod3time = DATEDIFF(rcnod3entm, rcnod3sttm, 'seconds') / 60.
COMPUTE rcnod4time = DATEDIFF(rcnod4entm, rcnod4sttm, 'seconds') / 60.
COMPUTE rcnod5time = DATEDIFF(rcnod5entm, rcnod5sttm, 'seconds') / 60.
COMPUTE rcnsc1time = DATEDIFF(rcnsc1entm, rcnsc1sttm, 'seconds') / 60.
COMPUTE rcnsc2time = DATEDIFF(rcnsc2entm, rcnsc2sttm, 'seconds') / 60.
COMPUTE rcnsc3time = DATEDIFF(rcnsc3entm, rcnsc3sttm, 'seconds') / 60.
COMPUTE rcnsc4time = DATEDIFF(rcnsc4entm, rcnsc4sttm, 'seconds') / 60.
COMPUTE rcnsc5time = DATEDIFF(rcnsc5entm, rcnsc5sttm, 'seconds') / 60.
COMPUTE rcnol1time = DATEDIFF(rcnol1entm, rcnol1sttm, 'seconds') / 60.
COMPUTE rcnol2time = DATEDIFF(rcnol2entm, rcnol2sttm, 'seconds') / 60.
COMPUTE rcnol3time = DATEDIFF(rcnol3entm, rcnol3sttm, 'seconds') / 60.
COMPUTE rcnol4time = DATEDIFF(rcnol4entm, rcnol4sttm, 'seconds') / 60.
COMPUTE rcnol5time = DATEDIFF(rcnol5entm, rcnol5sttm, 'seconds') / 60.
COMPUTE rcnps1time = DATEDIFF(rcnps1entm, rcnps1sttm, 'seconds') / 60.
COMPUTE rcnps2time = DATEDIFF(rcnps2entm, rcnps2sttm, 'seconds') / 60.
COMPUTE rcnps3time = DATEDIFF(rcnps3entm, rcnps3sttm, 'seconds') / 60.
COMPUTE rcnps4time = DATEDIFF(rcnps4entm, rcnps4sttm, 'seconds') / 60.
COMPUTE rcnps5time = DATEDIFF(rcnps5entm, rcnps5sttm, 'seconds') / 60.
COMPUTE rcnmn1time = DATEDIFF(rcnmn1entm, rcnmn1sttm, 'seconds') / 60.
COMPUTE rcnmn2time = DATEDIFF(rcnmn2entm, rcnmn2sttm, 'seconds') / 60.
COMPUTE rcnmn3time = DATEDIFF(rcnmn3entm, rcnmn3sttm, 'seconds') / 60.
COMPUTE rcnmn4time = DATEDIFF(rcnmn4entm, rcnmn4sttm, 'seconds') / 60.
COMPUTE rcnmn5time = DATEDIFF(rcnmn5entm, rcnmn5sttm, 'seconds') / 60.
COMPUTE rcnmw1time = DATEDIFF(rcnmw1entm, rcnmw1sttm, 'seconds') / 60.
COMPUTE rcnmw2time = DATEDIFF(rcnmw2entm, rcnmw2sttm, 'seconds') / 60.
COMPUTE rcnmw3time = DATEDIFF(rcnmw3entm, rcnmw3sttm, 'seconds') / 60.
COMPUTE rcnmw4time = DATEDIFF(rcnmw4entm, rcnmw4sttm, 'seconds') / 60.
COMPUTE rcnmw5time = DATEDIFF(rcnmw5entm, rcnmw5sttm, 'seconds') / 60.
EXECUTE.
rcndata1/2, rcnnact1/2, rcnndat1/2, rcnstatus1/2

Variables indicating the status of the Navigation web study battery:
rcnnact1/2 represents the number of missions completed (0 to 30);
rcnndat1/2 represents the number of missions with meaningful data (0 to 30), after exclusions;
rcnstatus1/2 shows battery status as 0=not started, 1=started, 2=completed;
rcndata1/2 is a data flag (1=meaningful data present, 0=no useful data).
Derived from the data flag item variables for each of the 30 individual missions. See syntax for further details: the consent (at the start of the battery) was treated as non-essential for the purposes of the status and data variables.

* Count activities completed (ignore consent) in the raw data.
COMPUTE rcnnact = SUM(rcnod1data, rcnod2data, rcnod3data, rcnod4data, rcnod5data,
 rcnsc1data, rcnsc2data, rcnsc3data, rcnsc4data, rcnsc5data,
 rcnol1data, rcnol2data, rcnol3data, rcnol4data, rcnol5data,
 rcnps1data, rcnps2data, rcnps3data, rcnps4data, rcnps5data,
 rcnmn1data, rcnmn2data, rcnmn3data, rcnmn4data, rcnmn5data,
 rcnmw1data, rcnmw2data, rcnmw3data, rcnmw4data, rcnmw5data).
EXECUTE.

* Recode the overall status variable more accurately and simply.
* so status=2 if all 30 activities completed, or 1 if 1-29 completed.
RECODE rcnnact
 (0=0) (1 THRU 29=1) (30=2)
INTO rcnstatus.
EXECUTE.

* Similarly, data flag = 1 if some meaningful web data is present (not just consent).
RECODE rcnstatus (0=0) (1=1) (2=1)
INTO rcndata.
EXECUTE.

* [after exclusion syntax].
* Add new variable 'ndat' as the number of tests with usable data.
* after exclusion due to lack of data or random responding.
* (resulting in mission data flags being recoded from 1 to 0).
* Leave original variable 'nact' unchanged, showing number of missions.
* actually completed at the time of testing.
* Likewise leave overall battery status variable unchanged.
IF (rcndata1 = 1) rcnndat = SUM(rcnod1data, rcnod2data, rcnod3data, rcnod4data,
 rcnod5data, rcnsc1data, rcnsc2data, rcnsc3data, rcnsc4data, rcnsc5data, rcnol1data,
 rcnol2data, rcnol3data, rcnol4data, rcnol5data, rcnps1data, rcnps2data, rcnps3data, 
 rcnps4data, rcnps5data, rcnmn1data, rcnmn2data, rcnmn3data, rcnmn4data, rcnmn5data,
 rcnmw1data, rcnmw2data, rcnmw3data, rcnmw4data, rcnmw5data).
EXECUTE.
rcndurtn1/2

Total duration (in minutes) of the Navigation web study battery, from start to end, if all activities were completed. Computed from item variables representing the start time (start of consent) and end time (end of final mission) of the battery. These raw time variables are not retained in the dataset.

* overall duration, subtracting start time (consent) from end time (last activity).
* but only if all 30 missions were completed.
IF (rcnnact >= 30) rcndurtn = DATEDIFF(rcnod5entm, rcncnsttm, "seconds") / 60.
EXECUTE.

* Distribution is distorted by extreme outliers due to.
* (1) twins who had lengthy pauses within activities.
* and (2) twins who stopped and re-started on a later date.
* Hence recode to missing if greater than 300 minutes (5 hours).
* and recode some weird negative times to missing.
RECODE rcndurtn
 (300 THRU HIGHEST=SYSMIS) (LOWEST THRU 0=SYSMIS).
EXECUTE.
rcnLLCage1/2, rcnLLCdate1/2

See rcbLLCage1/2, etc above.

rcnmnas1/2, rcnmwas1/2, rcnodas1/2, rcnolas1/2, rcnpsas1/2, rcnscas1/2

Overall accuracy scores for each of the 6 types of mission (denoted mn, mw, od, ol, ps, sc) in the Navigation web study battery. There are 5 missions of each type; the overall accuracy score for the mission type is the mean of the 5 respective mission accuracy scores. The latter are derived variables that are described elsewhere on this page.
Each score is scaled to the range 0-1, and has decimal values. At least 3 of the 5 missions are required to be present for each type.

* Overall accuracy scores for each mission type.
* Derived as a mean of the 5 missions of each type.
* Require at least 3 of the 5 to be completed.
COMPUTE rcnodas = MEAN.3(rcnod1as, rcnod2as, rcnod3as, rcnod4as, rcnod5as).
COMPUTE rcnolas = MEAN.3(rcnol1as, rcnol2as, rcnol3as, rcnol4as, rcnol5as).
COMPUTE rcnmnas = MEAN.3(rcnmn1as, rcnmn2as, rcnmn3as, rcnmn4as, rcnmn5as).
COMPUTE rcnmwas = MEAN.3(rcnmw1as, rcnmw2as, rcnmw3as, rcnmw4as, rcnmw5as).
COMPUTE rcnpsas = MEAN.3(rcnps1as, rcnps2as, rcnps3as, rcnps4as, rcnps5as).
COMPUTE rcnscas = MEAN.3(rcnsc1as, rcnsc2as, rcnsc3as, rcnsc4as, rcnsc5as).
EXECUTE.
rcnmnss1/2, rcnmwss1/2, rcnodss1/2, rcnolss1/2, rcnpsss1/2, rcnscss1/2

Overall speed scores for each of the 6 types of mission (denoted mn, mw, od, ol, ps, sc) in the Navigation web study battery. There are 5 missions of each type; the overall speed score for the mission type is the mean of the 5 respective mission speed scores. The latter are derived variables that are described elsewhere on this page.
Each score is scaled to the range 0-1, and has decimal values. At least 3 of the 5 missions are required to be present for each type.

* Overall speed scores for each mission type.
* Derived as a mean of the 5 missions of each type.
* Require at least 3 of the 5 to be completed.
COMPUTE rcnodss = MEAN.3(rcnod1ss, rcnod2ss, rcnod3ss, rcnod4ss, rcnod5ss).
COMPUTE rcnolss = MEAN.3(rcnol1ss, rcnol2ss, rcnol3ss, rcnol4ss, rcnol5ss).
COMPUTE rcnmnss = MEAN.3(rcnmn1ss, rcnmn2ss, rcnmn3ss, rcnmn4ss, rcnmn5ss).
COMPUTE rcnmwss = MEAN.3(rcnmw1ss, rcnmw2ss, rcnmw3ss, rcnmw4ss, rcnmw5ss).
COMPUTE rcnpsss = MEAN.3(rcnps1ss, rcnps2ss, rcnps3ss, rcnps4ss, rcnps5ss).
COMPUTE rcnscss = MEAN.3(rcnsc1ss, rcnsc2ss, rcnsc3ss, rcnsc4ss, rcnsc5ss).
EXECUTE.
rcnmnts1/2, rcnmwts1/2, rcnodts1/2, rcnolts1/2, rcnpsts1/2, rcnscts1/2

Overall total scores for each of the 6 types of mission (denoted mn, mw, od, ol, ps, sc) in the Navigation web study battery. There are 5 missions of each type; the overall total score for the mission type is the mean of the 5 respective mission total scores. The latter are derived variables that are described elsewhere on this page.
Each score is scaled to the range 0-1, and has decimal values. At least 3 of the 5 missions are required to be present for each type.

* Overall speed scores for each mission type.
* Derived as a mean of the 5 missions of each type.
* Require at least 3 of the 5 to be completed.
COMPUTE rcnodts = MEAN.3(rcnod1ts, rcnod2ts, rcnod3ts, rcnod4ts, rcnod5ts).
COMPUTE rcnolts = MEAN.3(rcnol1ts, rcnol2ts, rcnol3ts, rcnol4ts, rcnol5ts).
COMPUTE rcnmnts = MEAN.3(rcnmn1ts, rcnmn2ts, rcnmn3ts, rcnmn4ts, rcnmn5ts).
COMPUTE rcnmwts = MEAN.3(rcnmw1ts, rcnmw2ts, rcnmw3ts, rcnmw4ts, rcnmw5ts).
COMPUTE rcnpsts = MEAN.3(rcnps1ts, rcnps2ts, rcnps3ts, rcnps4ts, rcnps5ts).
COMPUTE rcnscts = MEAN.3(rcnsc1ts, rcnsc2ts, rcnsc3ts, rcnsc4ts, rcnsc5ts).
EXECUTE.
rcnmnXas1/2

Mission accuracy score for each Map Reading No Memory mission in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allows 2 attempts, and on each attempt the mission may be succeeded (with or without an error) or failed (if timed out). The missions are therefore scored with decimal values 0-1 as follows:
1=succeeded without error on 1st attempt;
0.75=succeeded with error on 1st attempt;
0.5=succeeded without error on 2nd attempt;
0.25=succeeded with error on 2nd attempt;
0=failed on both attempts.
The syntax below illustrates the scoring, which is derived from the raw attempt cm (completed) and er (error) attempt item variables; these are not retained in the dataset, but are replaced by recoded outcome variables (r), which are described elsewhere on this page.

* MN: each mission comprises a single task, allowing 2 attempts.
* Each attempt is completed without error (cm=1, er=0), completed with error (cm=1, er=1).
* or failed due to timeout (cm=0).
* If 1st attempt completed, 2nd attempt variables are missing.
* Score 1 if completed without error 1st attempt; 0.75 if completed with error 1st attempt.
* or 0.5 if completed without error 2nd attempt; 0.25 if completed with error 2nd attempt.
* or 0 if not completed on either attempt.
IF (rcnmn1a1cm = 1) rcnmn1as = 1 - (0.25 * rcnmn1a1er).
IF (rcnmn2a1cm = 1) rcnmn2as = 1 - (0.25 * rcnmn2a1er).
IF (rcnmn3a1cm = 1) rcnmn3as = 1 - (0.25 * rcnmn3a1er).
IF (rcnmn4a1cm = 1) rcnmn4as = 1 - (0.25 * rcnmn4a1er).
IF (rcnmn5a1cm = 1) rcnmn5as = 1 - (0.25 * rcnmn5a1er).
IF (rcnmn1a2cm = 1) rcnmn1as = 0.5 - (0.25 * rcnmn1a2er).
IF (rcnmn2a2cm = 1) rcnmn2as = 0.5 - (0.25 * rcnmn2a2er).
IF (rcnmn3a2cm = 1) rcnmn3as = 0.5 - (0.25 * rcnmn3a2er).
IF (rcnmn4a2cm = 1) rcnmn4as = 0.5 - (0.25 * rcnmn4a2er).
IF (rcnmn5a2cm = 1) rcnmn5as = 0.5 - (0.25 * rcnmn5a2er).
IF (rcnmn1a2cm = 0) rcnmn1as = 0.
IF (rcnmn2a2cm = 0) rcnmn2as = 0.
IF (rcnmn3a2cm = 0) rcnmn3as = 0.
IF (rcnmn4a2cm = 0) rcnmn4as = 0.
IF (rcnmn5a2cm = 0) rcnmn5as = 0.
EXECUTE.
rcnmnXaZr1/2

Recoded item (attempt) outcomes for the Map Reading No Memory missions in the Navigation web study battery. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allowed 2 attempts (denoted above by Z, with values 1 and 2).
In the Navigation raw data, responses and scores are not recorded as such. Instead, each item (attempt) has four item variables in the raw data: cm (completed, 0/1), er (error, 0/1), rt (reaction time) and ct (completion time). The aim here is to simplify the item data coding by replacing the cm and er variables with a single outcome (r) variable for each attempt. In Map Reading No Memory missions, each attempt outcome is coded as follows:
-4=no twin input during the attempt;
-3=attempt 2 skipped if attempt 1 was successful;
-1=attempt failed due to timeout;
1=attempt succeeded but with an error;
2=attempt succeeded without error.
Full details can be found in the syntax below. The raw cm and er item variables are dropped from the dataset after recoding and scoring.

* MN: each mission comprises a single task, allowing 2 attempts.
* Each attempt is normally completed without error (cm=1, er=0).
* or completed with error (cm=1, er=1), both with ct<60 and rt>0.
* or failed by timing out (cm=0, er=1 with ct>=60 and rt>0).
* Note that rare timeout anomalies also occur with rt=0.
* Code these three outcomes as 2, 1 and -1 respectively.
IF (rcnmn1a1cm = 1 & rcnmn1a1er = 0) rcnmn1a1r = 2.
IF (rcnmn1a2cm = 1 & rcnmn1a2er = 0) rcnmn1a2r = 2.
IF (rcnmn2a1cm = 1 & rcnmn2a1er = 0) rcnmn2a1r = 2.
IF (rcnmn2a2cm = 1 & rcnmn2a2er = 0) rcnmn2a2r = 2.
IF (rcnmn3a1cm = 1 & rcnmn3a1er = 0) rcnmn3a1r = 2.
IF (rcnmn3a2cm = 1 & rcnmn3a2er = 0) rcnmn3a2r = 2.
IF (rcnmn4a1cm = 1 & rcnmn4a1er = 0) rcnmn4a1r = 2.
IF (rcnmn4a2cm = 1 & rcnmn4a2er = 0) rcnmn4a2r = 2.
IF (rcnmn5a1cm = 1 & rcnmn5a1er = 0) rcnmn5a1r = 2.
IF (rcnmn5a2cm = 1 & rcnmn5a2er = 0) rcnmn5a2r = 2.
IF (rcnmn1a1cm = 1 & rcnmn1a1er = 1) rcnmn1a1r = 1.
IF (rcnmn1a2cm = 1 & rcnmn1a2er = 1) rcnmn1a2r = 1.
IF (rcnmn2a1cm = 1 & rcnmn2a1er = 1) rcnmn2a1r = 1.
IF (rcnmn2a2cm = 1 & rcnmn2a2er = 1) rcnmn2a2r = 1.
IF (rcnmn3a1cm = 1 & rcnmn3a1er = 1) rcnmn3a1r = 1.
IF (rcnmn3a2cm = 1 & rcnmn3a2er = 1) rcnmn3a2r = 1.
IF (rcnmn4a1cm = 1 & rcnmn4a1er = 1) rcnmn4a1r = 1.
IF (rcnmn4a2cm = 1 & rcnmn4a2er = 1) rcnmn4a2r = 1.
IF (rcnmn5a1cm = 1 & rcnmn5a1er = 1) rcnmn5a1r = 1.
IF (rcnmn5a2cm = 1 & rcnmn5a2er = 1) rcnmn5a2r = 1.
IF (rcnmn1a1cm = 0 & rcnmn1a1er = 1) rcnmn1a1r = -1.
IF (rcnmn1a2cm = 0 & rcnmn1a2er = 1) rcnmn1a2r = -1.
IF (rcnmn2a1cm = 0 & rcnmn2a1er = 1) rcnmn2a1r = -1.
IF (rcnmn2a2cm = 0 & rcnmn2a2er = 1) rcnmn2a2r = -1.
IF (rcnmn3a1cm = 0 & rcnmn3a1er = 1) rcnmn3a1r = -1.
IF (rcnmn3a2cm = 0 & rcnmn3a2er = 1) rcnmn3a2r = -1.
IF (rcnmn4a1cm = 0 & rcnmn4a1er = 1) rcnmn4a1r = -1.
IF (rcnmn4a2cm = 0 & rcnmn4a2er = 1) rcnmn4a2r = -1.
IF (rcnmn5a1cm = 0 & rcnmn5a1er = 1) rcnmn5a1r = -1.
IF (rcnmn5a2cm = 0 & rcnmn5a2er = 1) rcnmn5a2r = -1.
EXECUTE.
* Rare anomalies also appear with cm=0, er=0, ct>=60 and rt>0.
* and because rt>0 there was apparently some input (unlike cases below).
* so treat these as probable timeouts and code outcome as -1.
IF (rcnmn1a1ct >= 60 & rcnmn1a1rt > 0 & rcnmn1a1er = 0 & rcnmn1a1cm = 0) rcnmn1a1r = -1.
IF (rcnmn1a2ct >= 60 & rcnmn1a2rt > 0 & rcnmn1a2er = 0 & rcnmn1a2cm = 0) rcnmn1a2r = -1.
IF (rcnmn2a1ct >= 60 & rcnmn2a1rt > 0 & rcnmn2a1er = 0 & rcnmn2a1cm = 0) rcnmn2a1r = -1.
IF (rcnmn2a2ct >= 60 & rcnmn2a2rt > 0 & rcnmn2a2er = 0 & rcnmn2a2cm = 0) rcnmn2a2r = -1.
IF (rcnmn3a1ct >= 60 & rcnmn3a1rt > 0 & rcnmn3a1er = 0 & rcnmn3a1cm = 0) rcnmn3a1r = -1.
IF (rcnmn3a2ct >= 60 & rcnmn3a2rt > 0 & rcnmn3a2er = 0 & rcnmn3a2cm = 0) rcnmn3a2r = -1.
IF (rcnmn4a1ct >= 60 & rcnmn4a1rt > 0 & rcnmn4a1er = 0 & rcnmn4a1cm = 0) rcnmn4a1r = -1.
IF (rcnmn4a2ct >= 60 & rcnmn4a2rt > 0 & rcnmn4a2er = 0 & rcnmn4a2cm = 0) rcnmn4a2r = -1.
IF (rcnmn5a1ct >= 60 & rcnmn5a1rt > 0 & rcnmn5a1er = 0 & rcnmn5a1cm = 0) rcnmn5a1r = -1.
IF (rcnmn5a2ct >= 60 & rcnmn5a2rt > 0 & rcnmn5a2er = 0 & rcnmn5a2cm = 0) rcnmn5a2r = -1.
EXECUTE.
* If attempt 1 completed (cm=1, with or without error) then.
* attempt 2 is skipped (items missing): code outcome as -3.
IF (rcnmn1a1cm = 1) rcnmn1a2r = -3.
IF (rcnmn2a1cm = 1) rcnmn2a2r = -3.
IF (rcnmn3a1cm = 1) rcnmn3a2r = -3.
IF (rcnmn4a1cm = 1) rcnmn4a2r = -3.
IF (rcnmn5a1cm = 1) rcnmn5a2r = -3.
EXECUTE.
* If there was no input (no mouse movement) in an attempt, then.
* the attempt has rt=0, ct>=60, er=0 (also cm=0).
* Code the outcome as -4 (attempt effectively abandoned).
IF (rcnmn1a1ct >= 60 & rcnmn1a1rt = 0 & rcnmn1a1er = 0) rcnmn1a1r = -4.
IF (rcnmn1a2ct >= 60 & rcnmn1a2rt = 0 & rcnmn1a2er = 0) rcnmn1a2r = -4.
IF (rcnmn2a1ct >= 60 & rcnmn2a1rt = 0 & rcnmn2a1er = 0) rcnmn2a1r = -4.
IF (rcnmn2a2ct >= 60 & rcnmn2a2rt = 0 & rcnmn2a2er = 0) rcnmn2a2r = -4.
IF (rcnmn3a1ct >= 60 & rcnmn3a1rt = 0 & rcnmn3a1er = 0) rcnmn3a1r = -4.
IF (rcnmn3a2ct >= 60 & rcnmn3a2rt = 0 & rcnmn3a2er = 0) rcnmn3a2r = -4.
IF (rcnmn4a1ct >= 60 & rcnmn4a1rt = 0 & rcnmn4a1er = 0) rcnmn4a1r = -4.
IF (rcnmn4a2ct >= 60 & rcnmn4a2rt = 0 & rcnmn4a2er = 0) rcnmn4a2r = -4.
IF (rcnmn5a1ct >= 60 & rcnmn5a1rt = 0 & rcnmn5a1er = 0) rcnmn5a1r = -4.
IF (rcnmn5a2ct >= 60 & rcnmn5a2rt = 0 & rcnmn5a2er = 0) rcnmn5a2r = -4.
EXECUTE.
rcnmnXdata1/2, rcnmwXdata1/2, rcnodXdata1/2, rcnolXdata1/2, rcnpsXdata1/2, rcnscXdata1/2, rcnmnXstat1/2, rcnmwXstat1/2, rcnodXstat1/2, rcnolXstat1/2, rcnpsXstat1/2, rcnscXstat1/2

Data flags (with suffix 'data') and status flag (with suffix 'stat') for each of the Navigation web study missions. There are 6 mission types (labelled mn, mw, od, ol, ps, sc), and there are 5 missions of each type (X denotes the mission number, 1 to 5).
The variables are derived initially as shown in the syntax below, from the start and end times for each mission. Here, the status flag has value 0 (not started), 1 (started but not finished) or 2 (finished), and the data flag has value 0 (no meaningful data present) or 1 (data present).
These flag variables are later recoded (syntax not shown here) on detection of invalid data to be removed from the dataset (for tests compromised by loss of data or by random responses). Where invalid data are detected in a mission, the data flag is recoded from 1 to 0, while the status flag is recoded from 2 to 3 (insufficient data) or 4 (random responses).

* Judge whether each activity has started by the existence of a start time.
* and whether finished by the existence of an end time.
* There are cases where activities were started but not finished.
* so set status to 1 and delete the data later.
IF (~SYSMIS(rcnod1sttm) & SYSMIS(rcnod1entm)) rcnod1stat = 1.
IF (~SYSMIS(rcnod2sttm) & SYSMIS(rcnod2entm)) rcnod2stat = 1.
IF (~SYSMIS(rcnod3sttm) & SYSMIS(rcnod3entm)) rcnod3stat = 1.
IF (~SYSMIS(rcnod4sttm) & SYSMIS(rcnod4entm)) rcnod4stat = 1.
IF (~SYSMIS(rcnod5sttm) & SYSMIS(rcnod5entm)) rcnod5stat = 1.
IF (~SYSMIS(rcnsc1sttm) & SYSMIS(rcnsc1entm)) rcnsc1stat = 1.
IF (~SYSMIS(rcnsc2sttm) & SYSMIS(rcnsc2entm)) rcnsc2stat = 1.
IF (~SYSMIS(rcnsc3sttm) & SYSMIS(rcnsc3entm)) rcnsc3stat = 1.
IF (~SYSMIS(rcnsc4sttm) & SYSMIS(rcnsc4entm)) rcnsc4stat = 1.
IF (~SYSMIS(rcnsc5sttm) & SYSMIS(rcnsc5entm)) rcnsc5stat = 1.
IF (~SYSMIS(rcnol1sttm) & SYSMIS(rcnol1entm)) rcnol1stat = 1.
IF (~SYSMIS(rcnol2sttm) & SYSMIS(rcnol2entm)) rcnol2stat = 1.
IF (~SYSMIS(rcnol3sttm) & SYSMIS(rcnol3entm)) rcnol3stat = 1.
IF (~SYSMIS(rcnol4sttm) & SYSMIS(rcnol4entm)) rcnol4stat = 1.
IF (~SYSMIS(rcnol5sttm) & SYSMIS(rcnol5entm)) rcnol5stat = 1.
IF (~SYSMIS(rcnps1sttm) & SYSMIS(rcnps1entm)) rcnps1stat = 1.
IF (~SYSMIS(rcnps2sttm) & SYSMIS(rcnps2entm)) rcnps2stat = 1.
IF (~SYSMIS(rcnps3sttm) & SYSMIS(rcnps3entm)) rcnps3stat = 1.
IF (~SYSMIS(rcnps4sttm) & SYSMIS(rcnps4entm)) rcnps4stat = 1.
IF (~SYSMIS(rcnps5sttm) & SYSMIS(rcnps5entm)) rcnps5stat = 1.
IF (~SYSMIS(rcnmn1sttm) & SYSMIS(rcnmn1entm)) rcnmn1stat = 1.
IF (~SYSMIS(rcnmn2sttm) & SYSMIS(rcnmn2entm)) rcnmn2stat = 1.
IF (~SYSMIS(rcnmn3sttm) & SYSMIS(rcnmn3entm)) rcnmn3stat = 1.
IF (~SYSMIS(rcnmn4sttm) & SYSMIS(rcnmn4entm)) rcnmn4stat = 1.
IF (~SYSMIS(rcnmn5sttm) & SYSMIS(rcnmn5entm)) rcnmn5stat = 1.
IF (~SYSMIS(rcnmw1sttm) & SYSMIS(rcnmw1entm)) rcnmw1stat = 1.
IF (~SYSMIS(rcnmw2sttm) & SYSMIS(rcnmw2entm)) rcnmw2stat = 1.
IF (~SYSMIS(rcnmw3sttm) & SYSMIS(rcnmw3entm)) rcnmw3stat = 1.
IF (~SYSMIS(rcnmw4sttm) & SYSMIS(rcnmw4entm)) rcnmw4stat = 1.
IF (~SYSMIS(rcnmw5sttm) & SYSMIS(rcnmw5entm)) rcnmw5stat = 1.
EXECUTE.
* Not started: status=0.
IF (SYSMIS(rcnod1sttm)) rcnod1stat = 0.
IF (SYSMIS(rcnod2sttm)) rcnod2stat = 0.
IF (SYSMIS(rcnod3sttm)) rcnod3stat = 0.
IF (SYSMIS(rcnod4sttm)) rcnod4stat = 0.
IF (SYSMIS(rcnod5sttm)) rcnod5stat = 0.
IF (SYSMIS(rcnsc1sttm)) rcnsc1stat = 0.
IF (SYSMIS(rcnsc2sttm)) rcnsc2stat = 0.
IF (SYSMIS(rcnsc3sttm)) rcnsc3stat = 0.
IF (SYSMIS(rcnsc4sttm)) rcnsc4stat = 0.
IF (SYSMIS(rcnsc5sttm)) rcnsc5stat = 0.
IF (SYSMIS(rcnol1sttm)) rcnol1stat = 0.
IF (SYSMIS(rcnol2sttm)) rcnol2stat = 0.
IF (SYSMIS(rcnol3sttm)) rcnol3stat = 0.
IF (SYSMIS(rcnol4sttm)) rcnol4stat = 0.
IF (SYSMIS(rcnol5sttm)) rcnol5stat = 0.
IF (SYSMIS(rcnps1sttm)) rcnps1stat = 0.
IF (SYSMIS(rcnps2sttm)) rcnps2stat = 0.
IF (SYSMIS(rcnps3sttm)) rcnps3stat = 0.
IF (SYSMIS(rcnps4sttm)) rcnps4stat = 0.
IF (SYSMIS(rcnps5sttm)) rcnps5stat = 0.
IF (SYSMIS(rcnmn1sttm)) rcnmn1stat = 0.
IF (SYSMIS(rcnmn2sttm)) rcnmn2stat = 0.
IF (SYSMIS(rcnmn3sttm)) rcnmn3stat = 0.
IF (SYSMIS(rcnmn4sttm)) rcnmn4stat = 0.
IF (SYSMIS(rcnmn5sttm)) rcnmn5stat = 0.
IF (SYSMIS(rcnmw1sttm)) rcnmw1stat = 0.
IF (SYSMIS(rcnmw2sttm)) rcnmw2stat = 0.
IF (SYSMIS(rcnmw3sttm)) rcnmw3stat = 0.
IF (SYSMIS(rcnmw4sttm)) rcnmw4stat = 0.
IF (SYSMIS(rcnmw5sttm)) rcnmw5stat = 0.
EXECUTE.
* Finished: status=2.
IF (~SYSMIS(rcnod1entm)) rcnod1stat = 2.
IF (~SYSMIS(rcnod2entm)) rcnod2stat = 2.
IF (~SYSMIS(rcnod3entm)) rcnod3stat = 2.
IF (~SYSMIS(rcnod4entm)) rcnod4stat = 2.
IF (~SYSMIS(rcnod5entm)) rcnod5stat = 2.
IF (~SYSMIS(rcnsc1entm)) rcnsc1stat = 2.
IF (~SYSMIS(rcnsc2entm)) rcnsc2stat = 2.
IF (~SYSMIS(rcnsc3entm)) rcnsc3stat = 2.
IF (~SYSMIS(rcnsc4entm)) rcnsc4stat = 2.
IF (~SYSMIS(rcnsc5entm)) rcnsc5stat = 2.
IF (~SYSMIS(rcnol1entm)) rcnol1stat = 2.
IF (~SYSMIS(rcnol2entm)) rcnol2stat = 2.
IF (~SYSMIS(rcnol3entm)) rcnol3stat = 2.
IF (~SYSMIS(rcnol4entm)) rcnol4stat = 2.
IF (~SYSMIS(rcnol5entm)) rcnol5stat = 2.
IF (~SYSMIS(rcnps1entm)) rcnps1stat = 2.
IF (~SYSMIS(rcnps2entm)) rcnps2stat = 2.
IF (~SYSMIS(rcnps3entm)) rcnps3stat = 2.
IF (~SYSMIS(rcnps4entm)) rcnps4stat = 2.
IF (~SYSMIS(rcnps5entm)) rcnps5stat = 2.
IF (~SYSMIS(rcnmn1entm)) rcnmn1stat = 2.
IF (~SYSMIS(rcnmn2entm)) rcnmn2stat = 2.
IF (~SYSMIS(rcnmn3entm)) rcnmn3stat = 2.
IF (~SYSMIS(rcnmn4entm)) rcnmn4stat = 2.
IF (~SYSMIS(rcnmn5entm)) rcnmn5stat = 2.
IF (~SYSMIS(rcnmw1entm)) rcnmw1stat = 2.
IF (~SYSMIS(rcnmw2entm)) rcnmw2stat = 2.
IF (~SYSMIS(rcnmw3entm)) rcnmw3stat = 2.
IF (~SYSMIS(rcnmw4entm)) rcnmw4stat = 2.
IF (~SYSMIS(rcnmw5entm)) rcnmw5stat = 2.
EXECUTE.
* Data flags: meaningful data exists if status=2.
RECODE
 rcnod1stat rcnod2stat rcnod3stat rcnod4stat rcnod5stat
 rcnsc1stat rcnsc2stat rcnsc3stat rcnsc4stat rcnsc5stat
 rcnol1stat rcnol2stat rcnol3stat rcnol4stat rcnol5stat
 rcnps1stat rcnps2stat rcnps3stat rcnps4stat rcnps5stat
 rcnmn1stat rcnmn2stat rcnmn3stat rcnmn4stat rcnmn5stat
 rcnmw1stat rcnmw2stat rcnmw3stat rcnmw4stat rcnmw5stat
 (2=1) (ELSE=0)
INTO
 rcnod1data rcnod2data rcnod3data rcnod4data rcnod5data
 rcnsc1data rcnsc2data rcnsc3data rcnsc4data rcnsc5data
 rcnol1data rcnol2data rcnol3data rcnol4data rcnol5data
 rcnps1data rcnps2data rcnps3data rcnps4data rcnps5data
 rcnmn1data rcnmn2data rcnmn3data rcnmn4data rcnmn5data
 rcnmw1data rcnmw2data rcnmw3data rcnmw4data rcnmw5data.
EXECUTE.
rcnmnXss1/2, rcnmwXss1/2, rcnodXss1/2, rcnolXss1/2, rcnpsXss1/2, rcnscXss1/2

Mission speed scores for each of the missions in the Navigation web study battery. There are 6 mission types (denoted mn, mw, od, ol, ps, sc). There are 5 missions of each type (denoted above by X, with values 1 to 5). Each speed score is based on the duration variable for the mission (durn), ignoring any component tasks and attempts. The speed score is scaled to decimal values 0-1, with 0 representing the slowest speed (durn at or just above the mission time limit) and 1 representing the fastest speed (durn at its lowest observed value). The computation is demonstrated in the syntax below. The parameters (minimum and maximum observed times, rounded down) vary between missions and are based on observed frequencies in the data.

* Mission speed scores.
* Scale to roughly 0-1 decimal values as for accuracy scores.
* Use the mission duration (durn) variable, rounded down to an integer.
* so that if timed out then durn will be exactly equal to the time limit.
* Scoring 1 if completed in the shortest possible time (varies between missions).
* and scoring 0 if timed out.

* Check max and min times to modify parameters if necessary.
FREQUENCIES VARIABLES=
 rcnmn1durn rcnmn2durn rcnmn3durn rcnmn4durn rcnmn5durn
 rcnmw1durn rcnmw2durn rcnmw3durn rcnmw4durn rcnmw5durn
 rcnod1durn rcnod2durn rcnod3durn rcnod4durn rcnod5durn
 rcnol1durn rcnol2durn rcnol3durn rcnol4durn rcnol5durn
 rcnps1durn rcnps2durn rcnps3durn rcnps4durn rcnps5durn
 rcnsc1durn rcnsc2durn rcnsc3durn rcnsc4durn rcnsc5durn
  /FORMAT=NOTABLE
  /STATISTICS=MINIMUM MAXIMUM
  /HISTOGRAM
  /ORDER=ANALYSIS.
* Use the minimum values (rounded down) as parameters in the computations below.

* OD: time limit is 180.
COMPUTE rcnod1ss = (180 - TRUNC(rcnod1durn)) / (180 - 38).
COMPUTE rcnod2ss = (180 - TRUNC(rcnod2durn)) / (180 - 42).
COMPUTE rcnod3ss = (180 - TRUNC(rcnod3durn)) / (180 - 67).
COMPUTE rcnod4ss = (180 - TRUNC(rcnod4durn)) / (180 - 82).
COMPUTE rcnod5ss = (180 - TRUNC(rcnod5durn)) / (180 - 101).
EXECUTE.
* OL: time limit is 240 (mission 1) or 300 (the rest).
COMPUTE rcnol1ss = (240 - TRUNC(rcnol1durn)) / (240 - 60).
COMPUTE rcnol2ss = (300 - TRUNC(rcnol2durn)) / (300 - 81).
COMPUTE rcnol3ss = (300 - TRUNC(rcnol3durn)) / (300 - 112).
COMPUTE rcnol4ss = (300 - TRUNC(rcnol4durn)) / (300 - 125).
COMPUTE rcnol5ss = (300 - TRUNC(rcnol5durn)) / (300 - 127).
EXECUTE.
* MN: time limit is 120.
COMPUTE rcnmn1ss = (120 - TRUNC(rcnmn1durn)) / (120 - 18).
COMPUTE rcnmn2ss = (120 - TRUNC(rcnmn2durn)) / (120 - 26).
COMPUTE rcnmn3ss = (120 - TRUNC(rcnmn3durn)) / (120 - 21).
COMPUTE rcnmn4ss = (120 - TRUNC(rcnmn4durn)) / (120 - 11).
COMPUTE rcnmn5ss = (120 - TRUNC(rcnmn5durn)) / (120 - 18).
EXECUTE.
* MW: time limit is 240.
COMPUTE rcnmw1ss = (240 - TRUNC(rcnmw1durn)) / (240 - 24).
COMPUTE rcnmw2ss = (240 - TRUNC(rcnmw2durn)) / (240 - 21).
COMPUTE rcnmw3ss = (240 - TRUNC(rcnmw3durn)) / (240 - 25).
COMPUTE rcnmw4ss = (240 - TRUNC(rcnmw4durn)) / (240 - 13).
COMPUTE rcnmw5ss = (240 - TRUNC(rcnmw5durn)) / (240 - 15).
EXECUTE.
* PS and SC: time limit is 60 (minimum times are close to zero).
COMPUTE rcnps1ss = (60 - TRUNC(rcnps1durn)) / (60 - 0).
COMPUTE rcnps2ss = (60 - TRUNC(rcnps2durn)) / (60 - 2).
COMPUTE rcnps3ss = (60 - TRUNC(rcnps3durn)) / (60 - 1).
COMPUTE rcnps4ss = (60 - TRUNC(rcnps4durn)) / (60 - 2).
COMPUTE rcnps5ss = (60 - TRUNC(rcnps5durn)) / (60 - 1).
EXECUTE.
COMPUTE rcnsc1ss = (60 - TRUNC(rcnsc1durn)) / (60 - 2).
COMPUTE rcnsc2ss = (60 - TRUNC(rcnsc2durn)) / (60 - 3).
COMPUTE rcnsc3ss = (60 - TRUNC(rcnsc3durn)) / (60 - 3).
COMPUTE rcnsc4ss = (60 - TRUNC(rcnsc4durn)) / (60 - 2).
COMPUTE rcnsc5ss = (60 - TRUNC(rcnsc5durn)) / (60 - 3).
EXECUTE.

* High speed scores are meaningless if missions were failed (accuracy score zero).
* This is a rare anomaly in OD, but commonplace in PS and SC.
* Where found, recode the speed score to 0.
IF (rcnod1as = 0) rcnod1ss = 0.
IF (rcnod2as = 0) rcnod2ss = 0.
IF (rcnod3as = 0) rcnod3ss = 0.
IF (rcnod4as = 0) rcnod4ss = 0.
IF (rcnod5as = 0) rcnod5ss = 0.
EXECUTE.
IF (rcnps1as = 0) rcnps1ss = 0.
IF (rcnps2as = 0) rcnps2ss = 0.
IF (rcnps3as = 0) rcnps3ss = 0.
IF (rcnps4as = 0) rcnps4ss = 0.
IF (rcnps5as = 0) rcnps5ss = 0.
EXECUTE.
IF (rcnsc1as = 0) rcnsc1ss = 0.
IF (rcnsc2as = 0) rcnsc2ss = 0.
IF (rcnsc3as = 0) rcnsc3ss = 0.
IF (rcnsc4as = 0) rcnsc4ss = 0.
IF (rcnsc5as = 0) rcnsc5ss = 0.
EXECUTE.
rcnmnXtime1/2

See rcncntime1/2, etc above.

rcnmnXts1/2, rcnmwXts1/2, rcnodXts1/2, rcnolXts1/2, rcnpsXts1/2, rcnscXts1/2

Mission total scores for each of the missions in the Navigation web study battery. There are 6 mission types (denoted mn, mw, od, ol, ps, sc). There are 5 missions of each type (denoted above by X, with values 1 to 5). Each total score is computed from the accuracy score and the speed score, both of which are described elsewhere on this page. The total score is a weighted mean in which the accuracy score has twice the weighting of the speed score. The total score is scaled to the range 0-1 with decimal values.

* Mission total scores: from accuracy and speed, scaled to 0-1 decimal values.
* Use the mean, with speed score given half the weight of accuracy score.
COMPUTE rcnod1ts = (rcnod1as + (0.5 * rcnod1ss)) / 1.5.
COMPUTE rcnod2ts = (rcnod2as + (0.5 * rcnod2ss)) / 1.5.
COMPUTE rcnod3ts = (rcnod3as + (0.5 * rcnod3ss)) / 1.5.
COMPUTE rcnod4ts = (rcnod4as + (0.5 * rcnod4ss)) / 1.5.
COMPUTE rcnod5ts = (rcnod5as + (0.5 * rcnod5ss)) / 1.5.
COMPUTE rcnol1ts = (rcnol1as + (0.5 * rcnol1ss)) / 1.5.
COMPUTE rcnol2ts = (rcnol2as + (0.5 * rcnol2ss)) / 1.5.
COMPUTE rcnol3ts = (rcnol3as + (0.5 * rcnol3ss)) / 1.5.
COMPUTE rcnol4ts = (rcnol4as + (0.5 * rcnol4ss)) / 1.5.
COMPUTE rcnol5ts = (rcnol5as + (0.5 * rcnol5ss)) / 1.5.
COMPUTE rcnmn1ts = (rcnmn1as + (0.5 * rcnmn1ss)) / 1.5.
COMPUTE rcnmn2ts = (rcnmn2as + (0.5 * rcnmn2ss)) / 1.5.
COMPUTE rcnmn3ts = (rcnmn3as + (0.5 * rcnmn3ss)) / 1.5.
COMPUTE rcnmn4ts = (rcnmn4as + (0.5 * rcnmn4ss)) / 1.5.
COMPUTE rcnmn5ts = (rcnmn5as + (0.5 * rcnmn5ss)) / 1.5.
COMPUTE rcnmw1ts = (rcnmw1as + (0.5 * rcnmw1ss)) / 1.5.
COMPUTE rcnmw2ts = (rcnmw2as + (0.5 * rcnmw2ss)) / 1.5.
COMPUTE rcnmw3ts = (rcnmw3as + (0.5 * rcnmw3ss)) / 1.5.
COMPUTE rcnmw4ts = (rcnmw4as + (0.5 * rcnmw4ss)) / 1.5.
COMPUTE rcnmw5ts = (rcnmw5as + (0.5 * rcnmw5ss)) / 1.5.
COMPUTE rcnps1ts = (rcnps1as + (0.5 * rcnps1ss)) / 1.5.
COMPUTE rcnps2ts = (rcnps2as + (0.5 * rcnps2ss)) / 1.5.
COMPUTE rcnps3ts = (rcnps3as + (0.5 * rcnps3ss)) / 1.5.
COMPUTE rcnps4ts = (rcnps4as + (0.5 * rcnps4ss)) / 1.5.
COMPUTE rcnps5ts = (rcnps5as + (0.5 * rcnps5ss)) / 1.5.
COMPUTE rcnsc1ts = (rcnsc1as + (0.5 * rcnsc1ss)) / 1.5.
COMPUTE rcnsc2ts = (rcnsc2as + (0.5 * rcnsc2ss)) / 1.5.
COMPUTE rcnsc3ts = (rcnsc3as + (0.5 * rcnsc3ss)) / 1.5.
COMPUTE rcnsc4ts = (rcnsc4as + (0.5 * rcnsc4ss)) / 1.5.
COMPUTE rcnsc5ts = (rcnsc5as + (0.5 * rcnsc5ss)) / 1.5.
EXECUTE.
rcnmwas1/2

See rcnmnas1/2, rcnmwas1/2, rcnodas1/2, rcnolas1/2, rcnpsas1/2, rcnscas1/2 above.

rcnmwss1/2

See rcnmnss1/2, rcnmwss1/2, rcnodss1/2, rcnolss1/2, rcnpsss1/2, rcnscss1/2 above.

rcnmwts1/2

See rcnmnts1/2, rcnmwts1/2, rcnodts1/2, rcnolts1/2, rcnpsts1/2, rcnscts1/2 above.

rcnmwXas1/2

Mission accuracy score for each Map Reading With Memory mission in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allows 2 attempts, and on each attempt the mission may be succeeded (with or without an error) or failed (if timed out). The missions are therefore scored with decimal values 0-1 as follows:
1=succeeded without error on 1st attempt;
0.75=succeeded with error on 1st attempt;
0.5=succeeded without error on 2nd attempt;
0.25=succeeded with error on 2nd attempt;
0=failed on both attempts.
The syntax below illustrates the scoring, which is derived from the raw attempt cm (completed) and er (error) attempt item variables; these are not retained in the dataset, but are replaced by recoded outcome variables (r), which are described elsewhere on this page.

* MW: each mission comprises a single task, allowing 2 attempts.
* Each attempt is completed without error (cm=1, er=0), completed with error (cm=1, er=1).
* or failed (cm=0).
* If 1st attempt completed, 2nd attempt variables are missing.
* Score 1 if completed without error 1st attempt; 0.75 if completed with error 1st attempt.
* or 0.5 if completed without error 2nd attempt; 0.25 if completed with error 2nd attempt.
* or 0 if not completed on either attempt.
IF (rcnmw1a1cm = 1) rcnmw1as = 1 - (0.25 * rcnmw1a1er).
IF (rcnmw2a1cm = 1) rcnmw2as = 1 - (0.25 * rcnmw2a1er).
IF (rcnmw3a1cm = 1) rcnmw3as = 1 - (0.25 * rcnmw3a1er).
IF (rcnmw4a1cm = 1) rcnmw4as = 1 - (0.25 * rcnmw4a1er).
IF (rcnmw5a1cm = 1) rcnmw5as = 1 - (0.25 * rcnmw5a1er).
IF (rcnmw1a2cm = 1) rcnmw1as = 0.5 - (0.25 * rcnmw1a2er).
IF (rcnmw2a2cm = 1) rcnmw2as = 0.5 - (0.25 * rcnmw2a2er).
IF (rcnmw3a2cm = 1) rcnmw3as = 0.5 - (0.25 * rcnmw3a2er).
IF (rcnmw4a2cm = 1) rcnmw4as = 0.5 - (0.25 * rcnmw4a2er).
IF (rcnmw5a2cm = 1) rcnmw5as = 0.5 - (0.25 * rcnmw5a2er).
IF (rcnmw1a2cm = 0) rcnmw1as = 0.
IF (rcnmw2a2cm = 0) rcnmw2as = 0.
IF (rcnmw3a2cm = 0) rcnmw3as = 0.
IF (rcnmw4a2cm = 0) rcnmw4as = 0.
IF (rcnmw5a2cm = 0) rcnmw5as = 0.
EXECUTE.
rcnmwXaZr1/2

Recoded item (attempt) outcomes for the Map Reading With Memory missions in the Navigation web study battery. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allowed 2 attempts (denoted above by Z, with values 1 and 2).
In the Navigation raw data, responses and scores are not recorded as such. Instead, each item (attempt) has four item variables in the raw data: cm (completed, 0/1), er (error, 0/1), rt (reaction time) and ct (completion time). The aim here is to simplify the item data coding by replacing the cm and er variables with a single outcome (r) variable for each attempt. In Map Reading With Memory missions, each attempt outcome is coded as follows:
-4=no twin input during the attempt;
-3=attempt 2 skipped if attempt 1 was successful;
-1=attempt failed due to timeout;
1=attempt succeeded but with an error;
2=attempt succeeded without error.
Full details can be found in the syntax below. The raw cm and er item variables are dropped from the dataset after recoding and scoring.

* MW: data patterns are the same as for MN except that.
* attempt time limit is 120, and mission time limit is 240.
* Each mission comprises a single task, allowing 2 attempts.
* Each attempt is normally completed without error (cm=1, er=0).
* or completed with error (cm=1, er=1), both with ct<120 and rt>0.
* or failed by timing out (cm=0, er=1 with ct>=120 and rt>0).
* Note that rare timeout anomalies also occur with rt=0.
* Code these three outcomes as 2, 1 and -1 respectively.
IF (rcnmw1a1cm = 1 & rcnmw1a1er = 0) rcnmw1a1r = 2.
IF (rcnmw1a2cm = 1 & rcnmw1a2er = 0) rcnmw1a2r = 2.
IF (rcnmw2a1cm = 1 & rcnmw2a1er = 0) rcnmw2a1r = 2.
IF (rcnmw2a2cm = 1 & rcnmw2a2er = 0) rcnmw2a2r = 2.
IF (rcnmw3a1cm = 1 & rcnmw3a1er = 0) rcnmw3a1r = 2.
IF (rcnmw3a2cm = 1 & rcnmw3a2er = 0) rcnmw3a2r = 2.
IF (rcnmw4a1cm = 1 & rcnmw4a1er = 0) rcnmw4a1r = 2.
IF (rcnmw4a2cm = 1 & rcnmw4a2er = 0) rcnmw4a2r = 2.
IF (rcnmw5a1cm = 1 & rcnmw5a1er = 0) rcnmw5a1r = 2.
IF (rcnmw5a2cm = 1 & rcnmw5a2er = 0) rcnmw5a2r = 2.
IF (rcnmw1a1cm = 1 & rcnmw1a1er = 1) rcnmw1a1r = 1.
IF (rcnmw1a2cm = 1 & rcnmw1a2er = 1) rcnmw1a2r = 1.
IF (rcnmw2a1cm = 1 & rcnmw2a1er = 1) rcnmw2a1r = 1.
IF (rcnmw2a2cm = 1 & rcnmw2a2er = 1) rcnmw2a2r = 1.
IF (rcnmw3a1cm = 1 & rcnmw3a1er = 1) rcnmw3a1r = 1.
IF (rcnmw3a2cm = 1 & rcnmw3a2er = 1) rcnmw3a2r = 1.
IF (rcnmw4a1cm = 1 & rcnmw4a1er = 1) rcnmw4a1r = 1.
IF (rcnmw4a2cm = 1 & rcnmw4a2er = 1) rcnmw4a2r = 1.
IF (rcnmw5a1cm = 1 & rcnmw5a1er = 1) rcnmw5a1r = 1.
IF (rcnmw5a2cm = 1 & rcnmw5a2er = 1) rcnmw5a2r = 1.
IF (rcnmw1a1cm = 0 & rcnmw1a1er = 1) rcnmw1a1r = -1.
IF (rcnmw1a2cm = 0 & rcnmw1a2er = 1) rcnmw1a2r = -1.
IF (rcnmw2a1cm = 0 & rcnmw2a1er = 1) rcnmw2a1r = -1.
IF (rcnmw2a2cm = 0 & rcnmw2a2er = 1) rcnmw2a2r = -1.
IF (rcnmw3a1cm = 0 & rcnmw3a1er = 1) rcnmw3a1r = -1.
IF (rcnmw3a2cm = 0 & rcnmw3a2er = 1) rcnmw3a2r = -1.
IF (rcnmw4a1cm = 0 & rcnmw4a1er = 1) rcnmw4a1r = -1.
IF (rcnmw4a2cm = 0 & rcnmw4a2er = 1) rcnmw4a2r = -1.
IF (rcnmw5a1cm = 0 & rcnmw5a1er = 1) rcnmw5a1r = -1.
IF (rcnmw5a2cm = 0 & rcnmw5a2er = 1) rcnmw5a2r = -1.
EXECUTE.
* Rare anomalies also appear with cm=0, er=0, ct>=120 and rt>0.
* and because rt>0 there was apparently some input (unlike cases below).
* so treat these as probable timeouts and code outcome as -1.
IF (rcnmw1a1ct >= 120 & rcnmw1a1rt > 0 & rcnmw1a1er = 0 & rcnmw1a1cm = 0) rcnmw1a1r = -1.
IF (rcnmw1a2ct >= 120 & rcnmw1a2rt > 0 & rcnmw1a2er = 0 & rcnmw1a2cm = 0) rcnmw1a2r = -1.
IF (rcnmw2a1ct >= 120 & rcnmw2a1rt > 0 & rcnmw2a1er = 0 & rcnmw2a1cm = 0) rcnmw2a1r = -1.
IF (rcnmw2a2ct >= 120 & rcnmw2a2rt > 0 & rcnmw2a2er = 0 & rcnmw2a2cm = 0) rcnmw2a2r = -1.
IF (rcnmw3a1ct >= 120 & rcnmw3a1rt > 0 & rcnmw3a1er = 0 & rcnmw3a1cm = 0) rcnmw3a1r = -1.
IF (rcnmw3a2ct >= 120 & rcnmw3a2rt > 0 & rcnmw3a2er = 0 & rcnmw3a2cm = 0) rcnmw3a2r = -1.
IF (rcnmw4a1ct >= 120 & rcnmw4a1rt > 0 & rcnmw4a1er = 0 & rcnmw4a1cm = 0) rcnmw4a1r = -1.
IF (rcnmw4a2ct >= 120 & rcnmw4a2rt > 0 & rcnmw4a2er = 0 & rcnmw4a2cm = 0) rcnmw4a2r = -1.
IF (rcnmw5a1ct >= 120 & rcnmw5a1rt > 0 & rcnmw5a1er = 0 & rcnmw5a1cm = 0) rcnmw5a1r = -1.
IF (rcnmw5a2ct >= 120 & rcnmw5a2rt > 0 & rcnmw5a2er = 0 & rcnmw5a2cm = 0) rcnmw5a2r = -1.
EXECUTE.
* If attempt 1 completed (cm=1, with or without error) then.
* attempt 2 is skipped (items missing): code outcome as -3.
IF (rcnmw1a1cm = 1) rcnmw1a2r = -3.
IF (rcnmw2a1cm = 1) rcnmw2a2r = -3.
IF (rcnmw3a1cm = 1) rcnmw3a2r = -3.
IF (rcnmw4a1cm = 1) rcnmw4a2r = -3.
IF (rcnmw5a1cm = 1) rcnmw5a2r = -3.
EXECUTE.
* If there was no input (no mouse movement) in an attempt, then.
* the attempt has rt=0, ct>=120, er=0 (also cm=0).
* Code the outcome as -4 (attempt effectively abandoned).
IF (rcnmw1a1ct >= 120 & rcnmw1a1rt = 0 & rcnmw1a1er = 0) rcnmw1a1r = -4.
IF (rcnmw1a2ct >= 120 & rcnmw1a2rt = 0 & rcnmw1a2er = 0) rcnmw1a2r = -4.
IF (rcnmw2a1ct >= 120 & rcnmw2a1rt = 0 & rcnmw2a1er = 0) rcnmw2a1r = -4.
IF (rcnmw2a2ct >= 120 & rcnmw2a2rt = 0 & rcnmw2a2er = 0) rcnmw2a2r = -4.
IF (rcnmw3a1ct >= 120 & rcnmw3a1rt = 0 & rcnmw3a1er = 0) rcnmw3a1r = -4.
IF (rcnmw3a2ct >= 120 & rcnmw3a2rt = 0 & rcnmw3a2er = 0) rcnmw3a2r = -4.
IF (rcnmw4a1ct >= 120 & rcnmw4a1rt = 0 & rcnmw4a1er = 0) rcnmw4a1r = -4.
IF (rcnmw4a2ct >= 120 & rcnmw4a2rt = 0 & rcnmw4a2er = 0) rcnmw4a2r = -4.
IF (rcnmw5a1ct >= 120 & rcnmw5a1rt = 0 & rcnmw5a1er = 0) rcnmw5a1r = -4.
IF (rcnmw5a2ct >= 120 & rcnmw5a2rt = 0 & rcnmw5a2er = 0) rcnmw5a2r = -4.
EXECUTE.
rcnmwXdata1/2, rcnmwXstat1/2

See rcnmnXdata1/2, etc above.

rcnmwXss1/2

See rcnmnXss1/2, rcnmwXss1/2, rcnodXss1/2, rcnolXss1/2, rcnpsXss1/2, rcnscXss1/2 above.

rcnmwXtime1/2

See rcncntime1/2, etc above.

rcnmwXts1/2

See rcnmnXts1/2, rcnmwXts1/2, rcnodXts1/2, rcnolXts1/2, rcnpsXts1/2, rcnscXts1/2 above.

rcnnact1/2, rcnndat1/2

See rcndata1/2, rcnnact1/2, rcnndat1/2, rcnstatus1/2 above.

rcnodas1/2

See rcnmnas1/2, rcnmwas1/2, rcnodas1/2, rcnolas1/2, rcnpsas1/2, rcnscas1/2 above.

rcnodss1/2

See rcnmnss1/2, rcnmwss1/2, rcnodss1/2, rcnolss1/2, rcnpsss1/2, rcnscss1/2 above.

rcnodts1/2

See rcnmnts1/2, rcnmwts1/2, rcnodts1/2, rcnolts1/2, rcnpsts1/2, rcnscts1/2 above.

rcnodXas1/2

Mission accuracy score for each Orientation Direction mission in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission includes either 4 or 6 tasks, and the computation of the task accuracy scores is shown elsewhere on this page. The mission accuracy score is derived by summing the task accuracy scores for the mission, as shown in the syntax below. Each mission score is scaled to the range 0-1, with decimal values.

* OD: sum of the task accuracy scores (0-3) for each mission, scaled to 0-1 range.
* Use sum not mean as some twins failed to complete all tasks in a mission due to time out.
* hence their scores should be reduced according to the tasks completed.
COMPUTE rcnod1as = SUM(rcnod1t1as, rcnod1t2as, rcnod1t3as, rcnod1t4as, rcnod1t5as, rcnod1t6as) / 18.
COMPUTE rcnod2as = SUM(rcnod2t1as, rcnod2t2as, rcnod2t3as, rcnod2t4as) / 12.
COMPUTE rcnod3as = SUM(rcnod3t1as, rcnod3t2as, rcnod3t3as, rcnod3t4as, rcnod3t5as, rcnod3t6as) / 18.
COMPUTE rcnod4as = SUM(rcnod4t1as, rcnod4t2as, rcnod4t3as, rcnod4t4as, rcnod4t5as, rcnod4t6as) / 18.
COMPUTE rcnod5as = SUM(rcnod5t1as, rcnod5t2as, rcnod5t3as, rcnod5t4as, rcnod5t5as, rcnod5t6as) / 18.
EXECUTE.
rcnodXdata1/2, rcnodXstat1/2

See rcnmnXdata1/2, etc above.

rcnodXss1/2

See rcnmnXss1/2, rcnmwXss1/2, rcnodXss1/2, rcnolXss1/2, rcnpsXss1/2, rcnscXss1/2 above.

rcnodXtime1/2

See rcncntime1/2, etc above.

rcnodXts1/2

See rcnmnXts1/2, rcnmwXts1/2, rcnodXts1/2, rcnolXts1/2, rcnpsXts1/2, rcnscXts1/2 above.

rcnodXtYas1/2

Task accuracy scores for Orientation Direction missions in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission includes either 4 or 6 tasks (denoted above by Y, with values 1 to 6). Each task allowed 3 attempts at successful completion. Here, a score is derived for each task, with values 0-3:
3 if completed on the 1st attempt;
2 if completed on the 2nd attempt;
1 if completed on the 3rd attempt;
0 if failed.
The syntax below illustrates the scoring, which is derived from the raw attempt cm (completed) attempt item variables; the latter are not retained in the dataset, but are replaced by recoded outcome variables (r), which are described elsewhere on this page.

* OD: each task has up to 3 attempts, and each attempt is either.
* completed (cm=1, er=0) or failed (cm=0, er=1) or missing if mission times out.
* Score task 0-3 accordingly as below.
* Complications arise if the mission times out (durn>=180).
* in which case later task/attempt items may be missing.
* while earlier tasks/attempts may be completed hence deserving of scores.
* Score 1 if completed on 3rd attempt.
IF (rcnod1t1a3cm = 1) rcnod1t1as = 1.
IF (rcnod1t2a3cm = 1) rcnod1t2as = 1.
IF (rcnod1t3a3cm = 1) rcnod1t3as = 1.
IF (rcnod1t4a3cm = 1) rcnod1t4as = 1.
IF (rcnod1t5a3cm = 1) rcnod1t5as = 1.
IF (rcnod1t6a3cm = 1) rcnod1t6as = 1.
IF (rcnod2t1a3cm = 1) rcnod2t1as = 1.
IF (rcnod2t2a3cm = 1) rcnod2t2as = 1.
IF (rcnod2t3a3cm = 1) rcnod2t3as = 1.
IF (rcnod2t4a3cm = 1) rcnod2t4as = 1.
IF (rcnod3t1a3cm = 1) rcnod3t1as = 1.
IF (rcnod3t2a3cm = 1) rcnod3t2as = 1.
IF (rcnod3t3a3cm = 1) rcnod3t3as = 1.
IF (rcnod3t4a3cm = 1) rcnod3t4as = 1.
IF (rcnod3t5a3cm = 1) rcnod3t5as = 1.
IF (rcnod3t6a3cm = 1) rcnod3t6as = 1.
IF (rcnod4t1a3cm = 1) rcnod4t1as = 1.
IF (rcnod4t2a3cm = 1) rcnod4t2as = 1.
IF (rcnod4t3a3cm = 1) rcnod4t3as = 1.
IF (rcnod4t4a3cm = 1) rcnod4t4as = 1.
IF (rcnod4t5a3cm = 1) rcnod4t5as = 1.
IF (rcnod4t6a3cm = 1) rcnod4t6as = 1.
IF (rcnod5t1a3cm = 1) rcnod5t1as = 1.
IF (rcnod5t2a3cm = 1) rcnod5t2as = 1.
IF (rcnod5t3a3cm = 1) rcnod5t3as = 1.
IF (rcnod5t4a3cm = 1) rcnod5t4as = 1.
IF (rcnod5t5a3cm = 1) rcnod5t5as = 1.
IF (rcnod5t6a3cm = 1) rcnod5t6as = 1.
EXECUTE.
* Score 2 if completed on 2nd attempt (will have cm=0 for 1st attempt).
IF (rcnod1t1a2cm = 1) rcnod1t1as = 2.
IF (rcnod1t2a2cm = 1) rcnod1t2as = 2.
IF (rcnod1t3a2cm = 1) rcnod1t3as = 2.
IF (rcnod1t4a2cm = 1) rcnod1t4as = 2.
IF (rcnod1t5a2cm = 1) rcnod1t5as = 2.
IF (rcnod1t6a2cm = 1) rcnod1t6as = 2.
IF (rcnod2t1a2cm = 1) rcnod2t1as = 2.
IF (rcnod2t2a2cm = 1) rcnod2t2as = 2.
IF (rcnod2t3a2cm = 1) rcnod2t3as = 2.
IF (rcnod2t4a2cm = 1) rcnod2t4as = 2.
IF (rcnod3t1a2cm = 1) rcnod3t1as = 2.
IF (rcnod3t2a2cm = 1) rcnod3t2as = 2.
IF (rcnod3t3a2cm = 1) rcnod3t3as = 2.
IF (rcnod3t4a2cm = 1) rcnod3t4as = 2.
IF (rcnod3t5a2cm = 1) rcnod3t5as = 2.
IF (rcnod3t6a2cm = 1) rcnod3t6as = 2.
IF (rcnod4t1a2cm = 1) rcnod4t1as = 2.
IF (rcnod4t2a2cm = 1) rcnod4t2as = 2.
IF (rcnod4t3a2cm = 1) rcnod4t3as = 2.
IF (rcnod4t4a2cm = 1) rcnod4t4as = 2.
IF (rcnod4t5a2cm = 1) rcnod4t5as = 2.
IF (rcnod4t6a2cm = 1) rcnod4t6as = 2.
IF (rcnod5t1a2cm = 1) rcnod5t1as = 2.
IF (rcnod5t2a2cm = 1) rcnod5t2as = 2.
IF (rcnod5t3a2cm = 1) rcnod5t3as = 2.
IF (rcnod5t4a2cm = 1) rcnod5t4as = 2.
IF (rcnod5t5a2cm = 1) rcnod5t5as = 2.
IF (rcnod5t6a2cm = 1) rcnod5t6as = 2.
EXECUTE.
* Score 3 if task completed on 1st attempt.
* (never missing unless whole mission auto-paused).
IF (rcnod1t1a1cm = 1) rcnod1t1as = 3.
IF (rcnod1t2a1cm = 1) rcnod1t2as = 3.
IF (rcnod1t3a1cm = 1) rcnod1t3as = 3.
IF (rcnod1t4a1cm = 1) rcnod1t4as = 3.
IF (rcnod1t5a1cm = 1) rcnod1t5as = 3.
IF (rcnod1t6a1cm = 1) rcnod1t6as = 3.
IF (rcnod2t1a1cm = 1) rcnod2t1as = 3.
IF (rcnod2t2a1cm = 1) rcnod2t2as = 3.
IF (rcnod2t3a1cm = 1) rcnod2t3as = 3.
IF (rcnod2t4a1cm = 1) rcnod2t4as = 3.
IF (rcnod3t1a1cm = 1) rcnod3t1as = 3.
IF (rcnod3t2a1cm = 1) rcnod3t2as = 3.
IF (rcnod3t3a1cm = 1) rcnod3t3as = 3.
IF (rcnod3t4a1cm = 1) rcnod3t4as = 3.
IF (rcnod3t5a1cm = 1) rcnod3t5as = 3.
IF (rcnod3t6a1cm = 1) rcnod3t6as = 3.
IF (rcnod4t1a1cm = 1) rcnod4t1as = 3.
IF (rcnod4t2a1cm = 1) rcnod4t2as = 3.
IF (rcnod4t3a1cm = 1) rcnod4t3as = 3.
IF (rcnod4t4a1cm = 1) rcnod4t4as = 3.
IF (rcnod4t5a1cm = 1) rcnod4t5as = 3.
IF (rcnod4t6a1cm = 1) rcnod4t6as = 3.
IF (rcnod5t1a1cm = 1) rcnod5t1as = 3.
IF (rcnod5t2a1cm = 1) rcnod5t2as = 3.
IF (rcnod5t3a1cm = 1) rcnod5t3as = 3.
IF (rcnod5t4a1cm = 1) rcnod5t4as = 3.
IF (rcnod5t5a1cm = 1) rcnod5t5as = 3.
IF (rcnod5t6a1cm = 1) rcnod5t6as = 3.
EXECUTE.
* Score 0 if mission attempted (durn non-missing) but not completed.
* on any attempt, hence accuracy score is missing up to now.
IF (rcnod1data = 1 & SYSMIS(rcnod1t1as)) rcnod1t1as = 0.
IF (rcnod1data = 1 & SYSMIS(rcnod1t2as)) rcnod1t2as = 0.
IF (rcnod1data = 1 & SYSMIS(rcnod1t3as)) rcnod1t3as = 0.
IF (rcnod1data = 1 & SYSMIS(rcnod1t4as)) rcnod1t4as = 0.
IF (rcnod1data = 1 & SYSMIS(rcnod1t5as)) rcnod1t5as = 0.
IF (rcnod1data = 1 & SYSMIS(rcnod1t6as)) rcnod1t6as = 0.
IF (rcnod2data = 1 & SYSMIS(rcnod2t1as)) rcnod2t1as = 0.
IF (rcnod2data = 1 & SYSMIS(rcnod2t2as)) rcnod2t2as = 0.
IF (rcnod2data = 1 & SYSMIS(rcnod2t3as)) rcnod2t3as = 0.
IF (rcnod2data = 1 & SYSMIS(rcnod2t4as)) rcnod2t4as = 0.
IF (rcnod3data = 1 & SYSMIS(rcnod3t1as)) rcnod3t1as = 0.
IF (rcnod3data = 1 & SYSMIS(rcnod3t2as)) rcnod3t2as = 0.
IF (rcnod3data = 1 & SYSMIS(rcnod3t3as)) rcnod3t3as = 0.
IF (rcnod3data = 1 & SYSMIS(rcnod3t4as)) rcnod3t4as = 0.
IF (rcnod3data = 1 & SYSMIS(rcnod3t5as)) rcnod3t5as = 0.
IF (rcnod3data = 1 & SYSMIS(rcnod3t6as)) rcnod3t6as = 0.
IF (rcnod4data = 1 & SYSMIS(rcnod4t1as)) rcnod4t1as = 0.
IF (rcnod4data = 1 & SYSMIS(rcnod4t2as)) rcnod4t2as = 0.
IF (rcnod4data = 1 & SYSMIS(rcnod4t3as)) rcnod4t3as = 0.
IF (rcnod4data = 1 & SYSMIS(rcnod4t4as)) rcnod4t4as = 0.
IF (rcnod4data = 1 & SYSMIS(rcnod4t5as)) rcnod4t5as = 0.
IF (rcnod4data = 1 & SYSMIS(rcnod4t6as)) rcnod4t6as = 0.
IF (rcnod5data = 1 & SYSMIS(rcnod5t1as)) rcnod5t1as = 0.
IF (rcnod5data = 1 & SYSMIS(rcnod5t2as)) rcnod5t2as = 0.
IF (rcnod5data = 1 & SYSMIS(rcnod5t3as)) rcnod5t3as = 0.
IF (rcnod5data = 1 & SYSMIS(rcnod5t4as)) rcnod5t4as = 0.
IF (rcnod5data = 1 & SYSMIS(rcnod5t5as)) rcnod5t5as = 0.
IF (rcnod5data = 1 & SYSMIS(rcnod5t6as)) rcnod5t6as = 0.
EXECUTE.
rcnodXtYaZr1/2

Recoded item (attempt) outcomes for the Orientation Direction missions in the Navigation web study battery. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission included either 4 or 6 tasks (denoted above by Y, with values 1 to 6). Each task allowed 3 attempts (denoted above by Z, with values 1 to 3).
In the Navigation raw data, responses and scores are not recorded as such. Instead, each item (attempt) has four item variables in the raw data: cm (completed, 0/1), er (error, 0/1), rt (reaction time) and ct (completion time). The aim here is to simplify the item data coding by replacing the cm and er variables with a single outcome (r) variable for each attempt. In Orientation Direction missions, each attempt outcome is coded as follows:
-4=no twin input during the entire mission;
-3=attempt 2 or 3 skipped if attempt 1 or 2 was successful;
-2=attempt discontinued after mission timed out;
0=attempt failed;
1=attempt succeeded.
Full details can be found in the syntax below. The raw cm and er item variables are dropped from the dataset after recoding and scoring.

* OD: normally, each attempt is either completed (cm=1, er=0).
* or failed (cm=0, er=1); code outcome as 1 or 0 respectively.
* (no cases occur with cm=0 & er=0 or with cm=1 & er=1).
RECODE
 rcnod1t1a1cm rcnod1t1a2cm rcnod1t1a3cm rcnod1t2a1cm rcnod1t2a2cm rcnod1t2a3cm rcnod1t3a1cm
 rcnod1t3a2cm rcnod1t3a3cm rcnod1t4a1cm rcnod1t4a2cm rcnod1t4a3cm rcnod1t5a1cm rcnod1t5a2cm
 rcnod1t5a3cm rcnod1t6a1cm rcnod1t6a2cm rcnod1t6a3cm rcnod2t1a1cm rcnod2t1a2cm rcnod2t1a3cm
 rcnod2t2a1cm rcnod2t2a2cm rcnod2t2a3cm rcnod2t3a1cm rcnod2t3a2cm rcnod2t3a3cm rcnod2t4a1cm
 rcnod2t4a2cm rcnod2t4a3cm rcnod3t1a1cm rcnod3t1a2cm rcnod3t1a3cm rcnod3t2a1cm rcnod3t2a2cm
 rcnod3t2a3cm rcnod3t3a1cm rcnod3t3a2cm rcnod3t3a3cm rcnod3t4a1cm rcnod3t4a2cm rcnod3t4a3cm
 rcnod3t5a1cm rcnod3t5a2cm rcnod3t5a3cm rcnod3t6a1cm rcnod3t6a2cm rcnod3t6a3cm rcnod4t1a1cm
 rcnod4t1a2cm rcnod4t1a3cm rcnod4t2a1cm rcnod4t2a2cm rcnod4t2a3cm rcnod4t3a1cm rcnod4t3a2cm
 rcnod4t3a3cm rcnod4t4a1cm rcnod4t4a2cm rcnod4t4a3cm rcnod4t5a1cm rcnod4t5a2cm rcnod4t5a3cm
 rcnod4t6a1cm rcnod4t6a2cm rcnod4t6a3cm rcnod5t1a1cm rcnod5t1a2cm rcnod5t1a3cm rcnod5t2a1cm
 rcnod5t2a2cm rcnod5t2a3cm rcnod5t3a1cm rcnod5t3a2cm rcnod5t3a3cm rcnod5t4a1cm rcnod5t4a2cm
 rcnod5t4a3cm rcnod5t5a1cm rcnod5t5a2cm rcnod5t5a3cm rcnod5t6a1cm rcnod5t6a2cm rcnod5t6a3cm
 (1=1) (0=0) (SYSMIS=SYSMIS)
INTO
 rcnod1t1a1r rcnod1t1a2r rcnod1t1a3r rcnod1t2a1r rcnod1t2a2r rcnod1t2a3r rcnod1t3a1r rcnod1t3a2r
 rcnod1t3a3r rcnod1t4a1r rcnod1t4a2r rcnod1t4a3r rcnod1t5a1r rcnod1t5a2r rcnod1t5a3r rcnod1t6a1r
 rcnod1t6a2r rcnod1t6a3r rcnod2t1a1r rcnod2t1a2r rcnod2t1a3r rcnod2t2a1r rcnod2t2a2r rcnod2t2a3r
 rcnod2t3a1r rcnod2t3a2r rcnod2t3a3r rcnod2t4a1r rcnod2t4a2r rcnod2t4a3r rcnod3t1a1r rcnod3t1a2r
 rcnod3t1a3r rcnod3t2a1r rcnod3t2a2r rcnod3t2a3r rcnod3t3a1r rcnod3t3a2r rcnod3t3a3r rcnod3t4a1r
 rcnod3t4a2r rcnod3t4a3r rcnod3t5a1r rcnod3t5a2r rcnod3t5a3r rcnod3t6a1r rcnod3t6a2r rcnod3t6a3r
 rcnod4t1a1r rcnod4t1a2r rcnod4t1a3r rcnod4t2a1r rcnod4t2a2r rcnod4t2a3r rcnod4t3a1r rcnod4t3a2r
 rcnod4t3a3r rcnod4t4a1r rcnod4t4a2r rcnod4t4a3r rcnod4t5a1r rcnod4t5a2r rcnod4t5a3r rcnod4t6a1r
 rcnod4t6a2r rcnod4t6a3r rcnod5t1a1r rcnod5t1a2r rcnod5t1a3r rcnod5t2a1r rcnod5t2a2r rcnod5t2a3r
 rcnod5t3a1r rcnod5t3a2r rcnod5t3a3r rcnod5t4a1r rcnod5t4a2r rcnod5t4a3r rcnod5t5a1r rcnod5t5a2r
 rcnod5t5a3r rcnod5t6a1r rcnod5t6a2r rcnod5t6a3r.
EXECUTE.
* In each task, if attempt 1 is completed then attempts 2 and 3 are missing.
* and if attempt 2 is completed then attempt 3 is skipped.
* Code the outcome as -3 (skipped).
IF (rcnod1t1a1cm = 1) rcnod1t1a2r = -3.
IF (rcnod1t1a1cm = 1 | rcnod1t1a2cm = 1) rcnod1t1a3r = -3.
IF (rcnod1t2a1cm = 1) rcnod1t2a2r = -3.
IF (rcnod1t2a1cm = 1 | rcnod1t2a2cm = 1) rcnod1t2a3r = -3.
IF (rcnod1t3a1cm = 1) rcnod1t3a2r = -3.
IF (rcnod1t3a1cm = 1 | rcnod1t3a2cm = 1) rcnod1t3a3r = -3.
IF (rcnod1t4a1cm = 1) rcnod1t4a2r = -3.
IF (rcnod1t4a1cm = 1 | rcnod1t4a2cm = 1) rcnod1t4a3r = -3.
IF (rcnod1t5a1cm = 1) rcnod1t5a2r = -3.
IF (rcnod1t5a1cm = 1 | rcnod1t5a2cm = 1) rcnod1t5a3r = -3.
IF (rcnod1t6a1cm = 1) rcnod1t6a2r = -3.
IF (rcnod1t6a1cm = 1 | rcnod1t6a2cm = 1) rcnod1t6a3r = -3.
IF (rcnod2t1a1cm = 1) rcnod2t1a2r = -3.
IF (rcnod2t1a1cm = 1 | rcnod2t1a2cm = 1) rcnod2t1a3r = -3.
IF (rcnod2t2a1cm = 1) rcnod2t2a2r = -3.
IF (rcnod2t2a1cm = 1 | rcnod2t2a2cm = 1) rcnod2t2a3r = -3.
IF (rcnod2t3a1cm = 1) rcnod2t3a2r = -3.
IF (rcnod2t3a1cm = 1 | rcnod2t3a2cm = 1) rcnod2t3a3r = -3.
IF (rcnod2t4a1cm = 1) rcnod2t4a2r = -3.
IF (rcnod2t4a1cm = 1 | rcnod2t4a2cm = 1) rcnod2t4a3r = -3.
IF (rcnod3t1a1cm = 1) rcnod3t1a2r = -3.
IF (rcnod3t1a1cm = 1 | rcnod3t1a2cm = 1) rcnod3t1a3r = -3.
IF (rcnod3t2a1cm = 1) rcnod3t2a2r = -3.
IF (rcnod3t2a1cm = 1 | rcnod3t2a2cm = 1) rcnod3t2a3r = -3.
IF (rcnod3t3a1cm = 1) rcnod3t3a2r = -3.
IF (rcnod3t3a1cm = 1 | rcnod3t3a2cm = 1) rcnod3t3a3r = -3.
IF (rcnod3t4a1cm = 1) rcnod3t4a2r = -3.
IF (rcnod3t4a1cm = 1 | rcnod3t4a2cm = 1) rcnod3t4a3r = -3.
IF (rcnod3t5a1cm = 1) rcnod3t5a2r = -3.
IF (rcnod3t5a1cm = 1 | rcnod3t5a2cm = 1) rcnod3t5a3r = -3.
IF (rcnod3t6a1cm = 1) rcnod3t6a2r = -3.
IF (rcnod3t6a1cm = 1 | rcnod3t6a2cm = 1) rcnod3t6a3r = -3.
IF (rcnod4t1a1cm = 1) rcnod4t1a2r = -3.
IF (rcnod4t1a1cm = 1 | rcnod4t1a2cm = 1) rcnod4t1a3r = -3.
IF (rcnod4t2a1cm = 1) rcnod4t2a2r = -3.
IF (rcnod4t2a1cm = 1 | rcnod4t2a2cm = 1) rcnod4t2a3r = -3.
IF (rcnod4t3a1cm = 1) rcnod4t3a2r = -3.
IF (rcnod4t3a1cm = 1 | rcnod4t3a2cm = 1) rcnod4t3a3r = -3.
IF (rcnod4t4a1cm = 1) rcnod4t4a2r = -3.
IF (rcnod4t4a1cm = 1 | rcnod4t4a2cm = 1) rcnod4t4a3r = -3.
IF (rcnod4t5a1cm = 1) rcnod4t5a2r = -3.
IF (rcnod4t5a1cm = 1 | rcnod4t5a2cm = 1) rcnod4t5a3r = -3.
IF (rcnod4t6a1cm = 1) rcnod4t6a2r = -3.
IF (rcnod4t6a1cm = 1 | rcnod4t6a2cm = 1) rcnod4t6a3r = -3.
IF (rcnod5t1a1cm = 1) rcnod5t1a2r = -3.
IF (rcnod5t1a1cm = 1 | rcnod5t1a2cm = 1) rcnod5t1a3r = -3.
IF (rcnod5t2a1cm = 1) rcnod5t2a2r = -3.
IF (rcnod5t2a1cm = 1 | rcnod5t2a2cm = 1) rcnod5t2a3r = -3.
IF (rcnod5t3a1cm = 1) rcnod5t3a2r = -3.
IF (rcnod5t3a1cm = 1 | rcnod5t3a2cm = 1) rcnod5t3a3r = -3.
IF (rcnod5t4a1cm = 1) rcnod5t4a2r = -3.
IF (rcnod5t4a1cm = 1 | rcnod5t4a2cm = 1) rcnod5t4a3r = -3.
IF (rcnod5t5a1cm = 1) rcnod5t5a2r = -3.
IF (rcnod5t5a1cm = 1 | rcnod5t5a2cm = 1) rcnod5t5a3r = -3.
IF (rcnod5t6a1cm = 1) rcnod5t6a2r = -3.
IF (rcnod5t6a1cm = 1 | rcnod5t6a2cm = 1) rcnod5t6a3r = -3.
EXECUTE.
* There is no task or attempt timeout, but the mission times out after 180 seconds.
* and any incomplete tasks/attempts are effectively discontinued with missing data.
* Code the outcome as -2 (discontinued), provided mission was attempted (task 1 data present).
DO IF (rcnod1durn >= 180 & rcnod1t1a1cm >= 0).
 RECODE rcnod1t1a1r rcnod1t1a2r rcnod1t1a3r rcnod1t2a1r rcnod1t2a2r rcnod1t2a3r
 rcnod1t3a1r rcnod1t3a2r rcnod1t3a3r rcnod1t4a1r rcnod1t4a2r rcnod1t4a3r
 rcnod1t5a1r rcnod1t5a2r rcnod1t5a3r rcnod1t6a1r rcnod1t6a2r rcnod1t6a3r (SYSMIS=-2).
END IF.
DO IF (rcnod2durn >= 180 & rcnod2t1a1cm >= 0).
 RECODE rcnod2t1a1r rcnod2t1a2r rcnod2t1a3r rcnod2t2a1r rcnod2t2a2r rcnod2t2a3r
 rcnod2t3a1r rcnod2t3a2r rcnod2t3a3r rcnod2t4a1r rcnod2t4a2r rcnod2t4a3r (SYSMIS=-2).
END IF.
DO IF (rcnod3durn >= 180 & rcnod3t1a1cm >= 0).
 RECODE rcnod3t1a1r rcnod3t1a2r rcnod3t1a3r rcnod3t2a1r rcnod3t2a2r rcnod3t2a3r
 rcnod3t3a1r rcnod3t3a2r rcnod3t3a3r rcnod3t4a1r rcnod3t4a2r rcnod3t4a3r
 rcnod3t5a1r rcnod3t5a2r rcnod3t5a3r rcnod3t6a1r rcnod3t6a2r rcnod3t6a3r (SYSMIS=-2).
END IF.
DO IF (rcnod4durn >= 180 & rcnod4t1a1cm >= 0).
 RECODE rcnod4t1a1r rcnod4t1a2r rcnod4t1a3r rcnod4t2a1r rcnod4t2a2r rcnod4t2a3r
 rcnod4t3a1r rcnod4t3a2r rcnod4t3a3r rcnod4t4a1r rcnod4t4a2r rcnod4t4a3r
 rcnod4t5a1r rcnod4t5a2r rcnod4t5a3r rcnod4t6a1r rcnod4t6a2r rcnod4t6a3r (SYSMIS=-2).
END IF.
DO IF (rcnod5durn >= 180 & rcnod5t1a1cm >= 0).
 RECODE rcnod5t1a1r rcnod5t1a2r rcnod5t1a3r rcnod5t2a1r rcnod5t2a2r rcnod5t2a3r
 rcnod5t3a1r rcnod5t3a2r rcnod5t3a3r rcnod5t4a1r rcnod5t4a2r rcnod5t4a3r
 rcnod5t5a1r rcnod5t5a2r rcnod5t5a3r rcnod5t6a1r rcnod5t6a2r rcnod5t6a3r (SYSMIS=-2).
END IF.
* If there was no input at all in the mission, it times out and all task/attempt.
* data are missing; code outcome as -4 (effectively abandoned).
DO IF (rcnod1durn >= 180 & SYSMIS(rcnod1t1a1cm)).
 RECODE rcnod1t1a1r rcnod1t1a2r rcnod1t1a3r rcnod1t2a1r rcnod1t2a2r rcnod1t2a3r
 rcnod1t3a1r rcnod1t3a2r rcnod1t3a3r rcnod1t4a1r rcnod1t4a2r rcnod1t4a3r
 rcnod1t5a1r rcnod1t5a2r rcnod1t5a3r rcnod1t6a1r rcnod1t6a2r rcnod1t6a3r (SYSMIS=-4).
END IF.
EXECUTE.
DO IF (rcnod2durn >= 180 & SYSMIS(rcnod2t1a1cm)).
 RECODE rcnod2t1a1r rcnod2t1a2r rcnod2t1a3r rcnod2t2a1r rcnod2t2a2r rcnod2t2a3r
 rcnod2t3a1r rcnod2t3a2r rcnod2t3a3r rcnod2t4a1r rcnod2t4a2r rcnod2t4a3r (SYSMIS=-4).
END IF.
DO IF (rcnod3durn >= 180 & SYSMIS(rcnod3t1a1cm)).
 RECODE rcnod3t1a1r rcnod3t1a2r rcnod3t1a3r rcnod3t2a1r rcnod3t2a2r rcnod3t2a3r
 rcnod3t3a1r rcnod3t3a2r rcnod3t3a3r rcnod3t4a1r rcnod3t4a2r rcnod3t4a3r
 rcnod3t5a1r rcnod3t5a2r rcnod3t5a3r rcnod3t6a1r rcnod3t6a2r rcnod3t6a3r (SYSMIS=-4).
END IF.
DO IF (rcnod4durn >= 180 & SYSMIS(rcnod4t1a1cm)).
 RECODE rcnod4t1a1r rcnod4t1a2r rcnod4t1a3r rcnod4t2a1r rcnod4t2a2r rcnod4t2a3r
 rcnod4t3a1r rcnod4t3a2r rcnod4t3a3r rcnod4t4a1r rcnod4t4a2r rcnod4t4a3r
 rcnod4t5a1r rcnod4t5a2r rcnod4t5a3r rcnod4t6a1r rcnod4t6a2r rcnod4t6a3r (SYSMIS=-4).
END IF.
DO IF (rcnod5durn >= 180 & SYSMIS(rcnod5t1a1cm)).
 RECODE rcnod5t1a1r rcnod5t1a2r rcnod5t1a3r rcnod5t2a1r rcnod5t2a2r rcnod5t2a3r
 rcnod5t3a1r rcnod5t3a2r rcnod5t3a3r rcnod5t4a1r rcnod5t4a2r rcnod5t4a3r
 rcnod5t5a1r rcnod5t5a2r rcnod5t5a3r rcnod5t6a1r rcnod5t6a2r rcnod5t6a3r (SYSMIS=-4).
END IF.
EXECUTE.
rcnolas1/2

See rcnmnas1/2, rcnmwas1/2, rcnodas1/2, rcnolas1/2, rcnpsas1/2, rcnscas1/2 above.

rcnolss1/2

See rcnmnss1/2, rcnmwss1/2, rcnodss1/2, rcnolss1/2, rcnpsss1/2, rcnscss1/2 above.

rcnolts1/2

See rcnmnts1/2, rcnmwts1/2, rcnodts1/2, rcnolts1/2, rcnpsts1/2, rcnscts1/2 above.

rcnolXas1/2

Mission accuracy score for each Orientation Landmarks mission in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission includes either 4 or 5 tasks, and the computation of the task accuracy scores is shown elsewhere on this page. The mission accuracy score is derived by summing the task accuracy scores for the mission, as shown in the syntax below. Each mission score is scaled to the range 0-1, with decimal values.

* OL: use simple mean; each task times out independently, so all tasks are always attempted.
* hence a mean of the task scores is an appropriate mission score.
COMPUTE rcnol1as = MEAN(rcnol1t1as, rcnol1t2as, rcnol1t3as, rcnol1t4as).
COMPUTE rcnol2as = MEAN(rcnol2t1as, rcnol2t2as, rcnol2t3as, rcnol2t4as, rcnol2t5as).
COMPUTE rcnol3as = MEAN(rcnol3t1as, rcnol3t2as, rcnol3t3as, rcnol3t4as, rcnol3t5as).
COMPUTE rcnol4as = MEAN(rcnol4t1as, rcnol4t2as, rcnol4t3as, rcnol4t4as, rcnol4t5as).
COMPUTE rcnol5as = MEAN(rcnol5t1as, rcnol5t2as, rcnol5t3as, rcnol5t4as, rcnol5t5as).
EXECUTE.
rcnolXdata1/2, rcnolXstat1/2

See rcnmnXdata1/2, etc above.

rcnolXss1/2

See rcnmnXss1/2, rcnmwXss1/2, rcnodXss1/2, rcnolXss1/2, rcnpsXss1/2, rcnscXss1/2 above.

rcnolXtime1/2

See rcncntime1/2, etc above.

rcnolXts1/2

See rcnmnXts1/2, rcnmwXts1/2, rcnodXts1/2, rcnolXts1/2, rcnpsXts1/2, rcnscXts1/2 above.

rcnolXtYas1/2

Task accuracy scores for Orientation Landmarks missions in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission includes either 4 or 5 tasks (denoted above by Y, with values 1 to 5). Each task allowed just one attempt at successful completion. Here, a score is derived for each task, with value 1 (completed successfully) or 0 (failed).
The syntax below illustrates the scoring, which is derived from the raw attempt cm (completed) attempt item variables; the latter are not retained in the dataset, but are replaced by recoded outcome variables (r), which are described elsewhere on this page.

* OL: each task is either completed (cm=1, er=0) or failed (cm=0, er=1).
* (only one attempt); score 0/1 accordingly for each task, equal to cm flag.
* (seems redundant now but cm flags will be dropped after recoding).
COMPUTE rcnol1t1as = rcnol1t1cm.
COMPUTE rcnol1t2as = rcnol1t2cm.
COMPUTE rcnol1t3as = rcnol1t3cm.
COMPUTE rcnol1t4as = rcnol1t4cm.
COMPUTE rcnol2t1as = rcnol2t1cm.
COMPUTE rcnol2t2as = rcnol2t2cm.
COMPUTE rcnol2t3as = rcnol2t3cm.
COMPUTE rcnol2t4as = rcnol2t4cm.
COMPUTE rcnol2t5as = rcnol2t5cm.
COMPUTE rcnol3t1as = rcnol3t1cm.
COMPUTE rcnol3t2as = rcnol3t2cm.
COMPUTE rcnol3t3as = rcnol3t3cm.
COMPUTE rcnol3t4as = rcnol3t4cm.
COMPUTE rcnol3t5as = rcnol3t5cm.
COMPUTE rcnol4t1as = rcnol4t1cm.
COMPUTE rcnol4t2as = rcnol4t2cm.
COMPUTE rcnol4t3as = rcnol4t3cm.
COMPUTE rcnol4t4as = rcnol4t4cm.
COMPUTE rcnol4t5as = rcnol4t5cm.
COMPUTE rcnol5t1as = rcnol5t1cm.
COMPUTE rcnol5t2as = rcnol5t2cm.
COMPUTE rcnol5t3as = rcnol5t3cm.
COMPUTE rcnol5t4as = rcnol5t4cm.
COMPUTE rcnol5t5as = rcnol5t5cm.
EXECUTE.
rcnolXtYr1/2

Recoded item (task) outcomes for the Orientation Landmarks missions in the Navigation web study battery. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission included either 4 or 5 tasks (denoted above by Y, with values 1 to 5). Each task allowed just one attempt.
In the Navigation raw data, responses and scores are not recorded as such. Instead, each item (an attempt, here equivalent to a task) has four item variables in the raw data: cm (completed, 0/1), er (error, 0/1), rt (reaction time) and ct (completion time). The aim here is to simplify the item data coding by replacing the cm and er variables with a single outcome (r) variable for each attempt. In Orientation Landmarks missions, each task (attempt) outcome is coded as follows:
-4=no twin input during the task;
-1=task failed due to timeout;
1=task succeeded.
Full details can be found in the syntax below. The raw cm and er item variables are dropped from the dataset after recoding and scoring.

* OL: normally, each attempt is either completed (cm=1, er=0).
* or failed due to timeout (cm=0, er=1, ct>=60); code outcome as 1 or -1 respective.
* (no cases occur with cm=0 & er=0 or with cm=1 & er=1).
RECODE
 rcnol1t1cm rcnol1t2cm rcnol1t3cm rcnol1t4cm
 rcnol2t1cm rcnol2t2cm rcnol2t3cm rcnol2t4cm rcnol2t5cm
 rcnol3t1cm rcnol3t2cm rcnol3t3cm rcnol3t4cm rcnol3t5cm
 rcnol4t1cm rcnol4t2cm rcnol4t3cm rcnol4t4cm rcnol4t5cm
 rcnol5t1cm rcnol5t2cm rcnol5t3cm rcnol5t4cm rcnol5t5cm
 (1=1) (0=-1) (SYSMIS=SYSMIS)
INTO 
 rcnol1t1r rcnol1t2r rcnol1t3r rcnol1t4r
 rcnol2t1r rcnol2t2r rcnol2t3r rcnol2t4r rcnol2t5r
 rcnol3t1r rcnol3t2r rcnol3t3r rcnol3t4r rcnol3t5r 
 rcnol4t1r rcnol4t2r rcnol4t3r rcnol4t4r rcnol4t5r
 rcnol5t1r rcnol5t2r rcnol5t3r rcnol5t4r rcnol5t5r.
EXECUTE.
* There is only one attempt per task (so no attempts skipped).
* and no mission-level timeout (so no attempts discontinued).
* If there was no input (no mouse movement) in an attempt, then.
* the attempt has rt=0 (also ct>=60, er=1, cm=0).
* Code the outcome as -4 (attempt effectively abandoned).
IF (rcnol1t1rt = 0 & rcnol1t1ct >= 60) rcnol1t1r = -4.
IF (rcnol1t2rt = 0 & rcnol1t2ct >= 60) rcnol1t2r = -4.
IF (rcnol1t3rt = 0 & rcnol1t3ct >= 60) rcnol1t3r = -4.
IF (rcnol1t4rt = 0 & rcnol1t4ct >= 60) rcnol1t4r = -4.
IF (rcnol2t1rt = 0 & rcnol2t1ct >= 60) rcnol2t1r = -4.
IF (rcnol2t2rt = 0 & rcnol2t2ct >= 60) rcnol2t2r = -4.
IF (rcnol2t3rt = 0 & rcnol2t3ct >= 60) rcnol2t3r = -4.
IF (rcnol2t4rt = 0 & rcnol2t4ct >= 60) rcnol2t4r = -4.
IF (rcnol2t5rt = 0 & rcnol2t5ct >= 60) rcnol2t5r = -4.
IF (rcnol3t1rt = 0 & rcnol3t1ct >= 60) rcnol3t1r = -4.
IF (rcnol3t2rt = 0 & rcnol3t2ct >= 60) rcnol3t2r = -4.
IF (rcnol3t3rt = 0 & rcnol3t3ct >= 60) rcnol3t3r = -4.
IF (rcnol3t4rt = 0 & rcnol3t4ct >= 60) rcnol3t4r = -4.
IF (rcnol3t5rt = 0 & rcnol3t5ct >= 60) rcnol3t5r = -4.
IF (rcnol4t1rt = 0 & rcnol4t1ct >= 60) rcnol4t1r = -4.
IF (rcnol4t2rt = 0 & rcnol4t2ct >= 60) rcnol4t2r = -4.
IF (rcnol4t3rt = 0 & rcnol4t3ct >= 60) rcnol4t3r = -4.
IF (rcnol4t4rt = 0 & rcnol4t4ct >= 60) rcnol4t4r = -4.
IF (rcnol4t5rt = 0 & rcnol4t5ct >= 60) rcnol4t5r = -4.
IF (rcnol5t1rt = 0 & rcnol5t1ct >= 60) rcnol5t1r = -4.
IF (rcnol5t2rt = 0 & rcnol5t2ct >= 60) rcnol5t2r = -4.
IF (rcnol5t3rt = 0 & rcnol5t3ct >= 60) rcnol5t3r = -4.
IF (rcnol5t4rt = 0 & rcnol5t4ct >= 60) rcnol5t4r = -4.
IF (rcnol5t5rt = 0 & rcnol5t5ct >= 60) rcnol5t5r = -4.
EXECUTE.
rcnpsas1/2

See rcnmnas1/2, rcnmwas1/2, rcnodas1/2, rcnolas1/2, rcnpsas1/2, rcnscas1/2 above.

rcnpsss1/2

See rcnmnss1/2, rcnmwss1/2, rcnodss1/2, rcnolss1/2, rcnpsss1/2, rcnscss1/2 above.

rcnpsts1/2

See rcnmnts1/2, rcnmwts1/2, rcnodts1/2, rcnolts1/2, rcnpsts1/2, rcnscts1/2 above.

rcnpsXas1/2

Mission accuracy score for each Perspective mission in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allows up to 4 attempts, and each attempt can either succeed or fail. A successful attempt ends the mission, so any remaining attempts are not used. The missions are therefore scored with decimal values 0-1 as follows:
1=succeeded on 1st attempt;
0.75=succeeded on 2nd attempt;
0.5=succeeded on 3rd attempt;
0.25=succeeded on 4th attempt;
0=failed on all attempts.
The syntax below illustrates the scoring, which is derived from the raw attempt cm (completed) attempt item variables; these are not retained in the dataset, but are replaced by recoded outcome variables (r), which are described elsewhere on this page.

* PS: each mission comprises a single task, allowing up to 4 attempts.
* Each attempt is either completed (cm=1, er=0) or failed (cm=0, er=1).
* or timed out without a click (1st attempt: cm=0, er=0, ct>=60; subsequent attempts: cm=0, er=1, ct missing).
* If 1st attempt completed or timed out, subsequent attempt variables are missing, etc.
* Score each mission 0-1 (decimal): 1 if completed on 1st attempt, 0.75 on 2nd attempt.
*  0.5 on third attempt, 0.25 on 4th attempt, 0 if failed or timed out with no success.
* Conveniently compute the score using the cm flags, ignoring er flags.
COMPUTE rcnps1as = SUM(rcnps1a1cm, (0.75 * rcnps1a2cm), (0.5 * rcnps1a3cm), (0.25 * rcnps1a4cm)).
COMPUTE rcnps2as = SUM(rcnps2a1cm, (0.75 * rcnps2a2cm), (0.5 * rcnps2a3cm), (0.25 * rcnps2a4cm)).
COMPUTE rcnps3as = SUM(rcnps3a1cm, (0.75 * rcnps3a2cm), (0.5 * rcnps3a3cm), (0.25 * rcnps3a4cm)).
COMPUTE rcnps4as = SUM(rcnps4a1cm, (0.75 * rcnps4a2cm), (0.5 * rcnps4a3cm), (0.25 * rcnps4a4cm)).
COMPUTE rcnps5as = SUM(rcnps5a1cm, (0.75 * rcnps5a2cm), (0.5 * rcnps5a3cm), (0.25 * rcnps5a4cm)).
EXECUTE.
rcnpsXaZr1/2

Recoded item (attempt) outcomes for the Perspective missions in the Navigation web study battery. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allowed 4 attempts (denoted above by Z, with values 1 to 4).
In the Navigation raw data, responses and scores are not recorded as such. Instead, each item (attempt) has four item variables in the raw data: cm (completed, 0/1), er (error, 0/1), rt (reaction time) and ct (completion time). The aim here is to simplify the item data coding by replacing the cm and er variables with a single outcome (r) variable for each attempt. In Perspective missions, each attempt outcome is coded as follows:
-4=no twin input during the entire mission;
-3=attempt 2, 3 or 4 skipped if an earlier attempt was successful;
-2=attempt discontinued after mission timed out;
0=attempt failed;
1=attempt succeeded.
Full details can be found in the syntax below. The raw cm and er item variables are dropped from the dataset after recoding and scoring.

* PS: each mission comprises a single task with up to 4 attempts.
* There is a mission time limit of 60 seconds, but no attempt-level time limit.
* Each attempt is normally completed (cm=1, er=0).
* or failed (cm=0, er=1) if a click is made within the mission time limit.
* No cases occur with cm=1 and er=1.
RECODE
 rcnps1a1cm rcnps1a2cm rcnps1a3cm rcnps1a4cm rcnps2a1cm rcnps2a2cm rcnps2a3cm rcnps2a4cm
 rcnps3a1cm rcnps3a2cm rcnps3a3cm rcnps3a4cm rcnps4a1cm rcnps4a2cm rcnps4a3cm rcnps4a4cm
 rcnps5a1cm rcnps5a2cm rcnps5a3cm rcnps5a4cm
 (1=1) (0=0) (SYSMIS=SYSMIS)
INTO
 rcnps1a1r rcnps1a2r rcnps1a3r rcnps1a4r rcnps2a1r rcnps2a2r rcnps2a3r rcnps2a4r
 rcnps3a1r rcnps3a2r rcnps3a3r rcnps3a4r rcnps4a1r rcnps4a2r rcnps4a3r rcnps4a4r
 rcnps5a1r rcnps5a2r rcnps5a3r rcnps5a4r.
EXECUTE.
* In each mission, if attempt 1 is completed then attempts 2/3/4 are missing.
* if attempt 2 is completed then attempts 3/4 are missing.
* and if attempt 3 is completed then attempt 4 is missing.
* Code the outcome as -3 (skipped).
IF (rcnps1a1cm = 1) rcnps1a2r = -3.
IF (rcnps1a1cm = 1 | rcnps1a2cm = 1) rcnps1a3r = -3.
IF (rcnps1a1cm = 1 | rcnps1a2cm = 1 | rcnps1a3cm = 1) rcnps1a4r = -3.
IF (rcnps2a1cm = 1) rcnps2a2r = -3.
IF (rcnps2a1cm = 1 | rcnps2a2cm = 1) rcnps2a3r = -3.
IF (rcnps2a1cm = 1 | rcnps2a2cm = 1 | rcnps2a3cm = 1) rcnps2a4r = -3.
IF (rcnps3a1cm = 1) rcnps3a2r = -3.
IF (rcnps3a1cm = 1 | rcnps3a2cm = 1) rcnps3a3r = -3.
IF (rcnps3a1cm = 1 | rcnps3a2cm = 1 | rcnps3a3cm = 1) rcnps3a4r = -3.
IF (rcnps4a1cm = 1) rcnps4a2r = -3.
IF (rcnps4a1cm = 1 | rcnps4a2cm = 1) rcnps4a3r = -3.
IF (rcnps4a1cm = 1 | rcnps4a2cm = 1 | rcnps4a3cm = 1) rcnps4a4r = -3.
IF (rcnps5a1cm = 1) rcnps5a2r = -3.
IF (rcnps5a1cm = 1 | rcnps5a2cm = 1) rcnps5a3r = -3.
IF (rcnps5a1cm = 1 | rcnps5a2cm = 1 | rcnps5a3cm = 1) rcnps5a4r = -3.
EXECUTE.
* If the mission times out with no input (no clicks even for attempt 1).
* then for attempt 1: cm=0 and er=0 (also ct>=60 and rt=0).
* and for attempts 2/3/4 all items are missing; also mission durn>=60.
* Code outcome as -4 (timed out no input, possibly abandoned) for all 4 attempts.
DO IF (rcnps1a1cm = 0 & rcnps1a1er = 0).
 RECODE rcnps1a1r rcnps1a2r rcnps1a3r rcnps1a4r (ELSE=-4).
END IF.
DO IF (rcnps2a1cm = 0 & rcnps2a1er = 0).
 RECODE rcnps2a1r rcnps2a2r rcnps2a3r rcnps2a4r (ELSE=-4).
END IF.
DO IF (rcnps3a1cm = 0 & rcnps3a1er = 0).
 RECODE rcnps3a1r rcnps3a2r rcnps3a3r rcnps3a4r (ELSE=-4).
END IF.
DO IF (rcnps4a1cm = 0 & rcnps4a1er = 0).
 RECODE rcnps4a1r rcnps4a2r rcnps4a3r rcnps4a4r (ELSE=-4).
END IF.
DO IF (rcnps5a1cm = 0 & rcnps5a1er = 0).
 RECODE rcnps5a1r rcnps5a2r rcnps5a3r rcnps5a4r (ELSE=-4).
END IF.
EXECUTE.
* If the mission times out and at least one attempt has been made (but failed).
* then remaining attempts are effectively discontinued (code outcome -2).
* In these cases durn>=60, attempt 1 er=1, and discontinued attempt data are missing.
DO IF (rcnps1durn >= 60 & rcnps1a1er = 1).
 RECODE rcnps1a2r rcnps1a3r rcnps1a4r (SYSMIS=-2).
END IF.
DO IF (rcnps2durn >= 60 & rcnps2a1er = 1).
 RECODE rcnps2a2r rcnps2a3r rcnps2a4r (SYSMIS=-2).
END IF.
DO IF (rcnps3durn >= 60 & rcnps3a1er = 1).
 RECODE rcnps3a2r rcnps3a3r rcnps3a4r (SYSMIS=-2).
END IF.
DO IF (rcnps4durn >= 60 & rcnps4a1er = 1).
 RECODE rcnps4a2r rcnps4a3r rcnps4a4r (SYSMIS=-2).
END IF.
DO IF (rcnps5durn >= 60 & rcnps5a1er = 1).
 RECODE rcnps5a2r rcnps5a3r rcnps5a4r (SYSMIS=-2).
END IF.
EXECUTE.
rcnpsXdata1/2, rcnpsXstat1/2

See rcnmnXdata1/2, etc above.

rcnpsXss1/2

See rcnmnXss1/2, rcnmwXss1/2, rcnodXss1/2, rcnolXss1/2, rcnpsXss1/2, rcnscXss1/2 above.

rcnpsXtime1/2

See rcncntime1/2, etc above.

rcnpsXts1/2

See rcnmnXts1/2, rcnmwXts1/2, rcnodXts1/2, rcnolXts1/2, rcnpsXts1/2, rcnscXts1/2 above.

rcnscas1/2

See rcnmnas1/2, rcnmwas1/2, rcnodas1/2, rcnolas1/2, rcnpsas1/2, rcnscas1/2 above.

rcnscss1/2

See rcnmnss1/2, rcnmwss1/2, rcnodss1/2, rcnolss1/2, rcnpsss1/2, rcnscss1/2 above.

rcnscts1/2

See rcnmnts1/2, rcnmwts1/2, rcnodts1/2, rcnolts1/2, rcnpsts1/2, rcnscts1/2 above.

rcnscXas1/2

Mission accuracy score for each Scanning mission in the Navigation web study. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allows up to 4 attempts, and each attempt can either succeed or fail. A successful attempt ends the mission, so any remaining attempts are not used. The missions are therefore scored with decimal values 0-1 as follows:
1=succeeded on 1st attempt;
0.75=succeeded on 2nd attempt;
0.5=succeeded on 3rd attempt;
0.25=succeeded on 4th attempt;
0=failed on all attempts.
The syntax below illustrates the scoring, which is derived from the raw attempt cm (completed) attempt item variables; these are not retained in the dataset, but are replaced by recoded outcome variables (r), which are described elsewhere on this page.

* SC: each mission comprises a single task, allowing up to 4 attempts.
* Each attempt is either completed (cm=1, er=0) or failed (cm=0, er=1).
* or timed out without a click (1st attempt: cm=0, er=0, ct>=60; subsequent attempts: cm=0, er=1, ct missing).
* If 1st attempt completed or timed out, subsequent attempt variables are missing, etc.
* Score each mission 0-1 (decimal): 1 if completed on 1st attempt, 0.75 on 2nd attempt.
*  0.5 on third attempt, 0.25 on 4th attempt, 0 if failed or timed out with no success.
* Conveniently compute the score using the cm flags, ignoring er flags.
COMPUTE rcnsc1as = SUM(rcnsc1a1cm, (0.75 * rcnsc1a2cm), (0.5 * rcnsc1a3cm), (0.25 * rcnsc1a4cm)).
COMPUTE rcnsc2as = SUM(rcnsc2a1cm, (0.75 * rcnsc2a2cm), (0.5 * rcnsc2a3cm), (0.25 * rcnsc2a4cm)).
COMPUTE rcnsc3as = SUM(rcnsc3a1cm, (0.75 * rcnsc3a2cm), (0.5 * rcnsc3a3cm), (0.25 * rcnsc3a4cm)).
COMPUTE rcnsc4as = SUM(rcnsc4a1cm, (0.75 * rcnsc4a2cm), (0.5 * rcnsc4a3cm), (0.25 * rcnsc4a4cm)).
COMPUTE rcnsc5as = SUM(rcnsc5a1cm, (0.75 * rcnsc5a2cm), (0.5 * rcnsc5a3cm), (0.25 * rcnsc5a4cm)).
EXECUTE.
rcnscXaZr1/2

Recoded item (attempt) outcomes for the Scanning missions in the Navigation web study battery. There are 5 such missions (denoted above by X, with values 1 to 5). Each mission allowed 4 attempts (denoted above by Z, with values 1 to 4).
In the Navigation raw data, responses and scores are not recorded as such. Instead, each item (attempt) has four item variables in the raw data: cm (completed, 0/1), er (error, 0/1), rt (reaction time) and ct (completion time). The aim here is to simplify the item data coding by replacing the cm and er variables with a single outcome (r) variable for each attempt. In Scanning missions, each attempt outcome is coded as follows:
-4=no twin input during the entire mission;
-3=attempt 2, 3 or 4 skipped if an earlier attempt was successful;
-2=attempt discontinued after mission timed out;
0=attempt failed;
1=attempt succeeded.
Full details can be found in the syntax below. The raw cm and er item variables are dropped from the dataset after recoding and scoring.

* SC: same coding patterns as for PS.
* Each mission comprises a single task with up to 4 attempts.
* Mission time limit is 60, there is no attempt-level time limit.
* Each attempt is normally completed (cm=1, er=0).
* or failed (cm=0, er=1) if a click is made within the mission time limit.
* No cases occur with cm=1 and er=1.
RECODE
 rcnsc1a1cm rcnsc1a2cm rcnsc1a3cm rcnsc1a4cm rcnsc2a1cm rcnsc2a2cm rcnsc2a3cm rcnsc2a4cm
 rcnsc3a1cm rcnsc3a2cm rcnsc3a3cm rcnsc3a4cm rcnsc4a1cm rcnsc4a2cm rcnsc4a3cm rcnsc4a4cm
 rcnsc5a1cm rcnsc5a2cm rcnsc5a3cm rcnsc5a4cm
 (1=1) (0=0) (SYSMIS=SYSMIS)
INTO
 rcnsc1a1r rcnsc1a2r rcnsc1a3r rcnsc1a4r rcnsc2a1r rcnsc2a2r rcnsc2a3r rcnsc2a4r
 rcnsc3a1r rcnsc3a2r rcnsc3a3r rcnsc3a4r rcnsc4a1r rcnsc4a2r rcnsc4a3r rcnsc4a4r
 rcnsc5a1r rcnsc5a2r rcnsc5a3r rcnsc5a4r.
EXECUTE.
* In each mission, if attempt 1 is completed then attempts 2/3/4 are missing.
* if attempt 2 is completed then attempts 3/4 are missing.
* and if attempt 3 is completed then attempt 4 is missing.
* Code the outcome as -3 (skipped).
IF (rcnsc1a1cm = 1) rcnsc1a2r = -3.
IF (rcnsc1a1cm = 1 | rcnsc1a2cm = 1) rcnsc1a3r = -3.
IF (rcnsc1a1cm = 1 | rcnsc1a2cm = 1 | rcnsc1a3cm = 1) rcnsc1a4r = -3.
IF (rcnsc2a1cm = 1) rcnsc2a2r = -3.
IF (rcnsc2a1cm = 1 | rcnsc2a2cm = 1) rcnsc2a3r = -3.
IF (rcnsc2a1cm = 1 | rcnsc2a2cm = 1 | rcnsc2a3cm = 1) rcnsc2a4r = -3.
IF (rcnsc3a1cm = 1) rcnsc3a2r = -3.
IF (rcnsc3a1cm = 1 | rcnsc3a2cm = 1) rcnsc3a3r = -3.
IF (rcnsc3a1cm = 1 | rcnsc3a2cm = 1 | rcnsc3a3cm = 1) rcnsc3a4r = -3.
IF (rcnsc4a1cm = 1) rcnsc4a2r = -3.
IF (rcnsc4a1cm = 1 | rcnsc4a2cm = 1) rcnsc4a3r = -3.
IF (rcnsc4a1cm = 1 | rcnsc4a2cm = 1 | rcnsc4a3cm = 1) rcnsc4a4r = -3.
IF (rcnsc5a1cm = 1) rcnsc5a2r = -3.
IF (rcnsc5a1cm = 1 | rcnsc5a2cm = 1) rcnsc5a3r = -3.
IF (rcnsc5a1cm = 1 | rcnsc5a2cm = 1 | rcnsc5a3cm = 1) rcnsc5a4r = -3.
EXECUTE.
* If the mission times out with no input (no clicks even for attempt 1).
* then for attempt 1: cm=0 and er=0 (also ct>=60 and rt=0).
* and for attempts 2/3/4 all items are missing; also mission durn>=60.
* Code outcome as -4 (timed out no input, possibly abandoned) for all 4 attempts.
DO IF (rcnsc1a1cm = 0 & rcnsc1a1er = 0).
 RECODE rcnsc1a1r rcnsc1a2r rcnsc1a3r rcnsc1a4r (ELSE=-4).
END IF.
DO IF (rcnsc2a1cm = 0 & rcnsc2a1er = 0).
 RECODE rcnsc2a1r rcnsc2a2r rcnsc2a3r rcnsc2a4r (ELSE=-4).
END IF.
DO IF (rcnsc3a1cm = 0 & rcnsc3a1er = 0).
 RECODE rcnsc3a1r rcnsc3a2r rcnsc3a3r rcnsc3a4r (ELSE=-4).
END IF.
DO IF (rcnsc4a1cm = 0 & rcnsc4a1er = 0).
 RECODE rcnsc4a1r rcnsc4a2r rcnsc4a3r rcnsc4a4r (ELSE=-4).
END IF.
DO IF (rcnsc5a1cm = 0 & rcnsc5a1er = 0).
 RECODE rcnsc5a1r rcnsc5a2r rcnsc5a3r rcnsc5a4r (ELSE=-4).
END IF.
EXECUTE.
* If the mission times out and at least one attempt has been made (but failed).
* then remaining attempts are effectively discontinued (code outcome -2).
* In these cases durn>=60, attempt 1 er=1, and discontinued attempt data are missing.
DO IF (rcnsc1durn >= 60 & rcnsc1a1er = 1).
 RECODE rcnsc1a2r rcnsc1a3r rcnsc1a4r (SYSMIS=-2).
END IF.
DO IF (rcnsc2durn >= 60 & rcnsc2a1er = 1).
 RECODE rcnsc2a2r rcnsc2a3r rcnsc2a4r (SYSMIS=-2).
END IF.
DO IF (rcnsc3durn >= 60 & rcnsc3a1er = 1).
 RECODE rcnsc3a2r rcnsc3a3r rcnsc3a4r (SYSMIS=-2).
END IF.
DO IF (rcnsc4durn >= 60 & rcnsc4a1er = 1).
 RECODE rcnsc4a2r rcnsc4a3r rcnsc4a4r (SYSMIS=-2).
END IF.
DO IF (rcnsc5durn >= 60 & rcnsc5a1er = 1).
 RECODE rcnsc5a2r rcnsc5a3r rcnsc5a4r (SYSMIS=-2).
END IF.
EXECUTE.
rcnscXdata1/2, rcnscXstat1/2

See rcnmnXdata1/2, etc above.

rcnscXss1/2

See rcnmnXss1/2, rcnmwXss1/2, rcnodXss1/2, rcnolXss1/2, rcnpsXss1/2, rcnscXss1/2 above.

rcnscXtime1/2

See rcncntime1/2, etc above.

rcnscXts1/2

See rcnmnXts1/2, rcnmwXts1/2, rcnodXts1/2, rcnolXts1/2, rcnpsXts1/2, rcnscXts1/2 above.

rcnss1/2

See rcnas1/2, rcnss1/2, rcnts1/2 above.

rcnstatus1/2

See rcndata1/2, rcnnact1/2, rcnndat1/2, rcnstatus1/2 above.

rcntime1/2

Total time (in minutes) spent on the activities of the Navigation web study battery, if all activities were completed. There were 31 activities, including consent and the 30 missions; require all 31 to be present for the total time to be meaningful. Computed as the sum of the times for the individual activities (these are derived variables described elsewhere on this page).

* total activity time: sum the activity times including consent.
* (require at all 31 times to be present).
COMPUTE rcntime = SUM.31(rcncntime,
 rcnod1time, rcnod2time, rcnod3time, rcnod4time, rcnod5time,
 rcnsc1time, rcnsc2time, rcnsc3time, rcnsc4time, rcnsc5time,
 rcnol1time, rcnol2time, rcnol3time, rcnol4time, rcnol5time,
 rcnps1time, rcnps2time, rcnps3time, rcnps4time, rcnps5time,
 rcnmn1time, rcnmn2time, rcnmn3time, rcnmn4time, rcnmn5time,
 rcnmw1time, rcnmw2time, rcnmw3time, rcnmw4time, rcnmw5time).
EXECUTE.
rcnts1/2

See rcnas1/2, rcnss1/2, rcnts1/2 above.

rcpage1/2

See rcbage1/2, rcfage1/2, rckage1/2, rcnage1/2, rcpage1/2, rcqage1/2 above.

rcpasptime1/2, rcpcrtime1/2, rcpcntime1/2, rcpfctime1/2

Duration of Perception Study web activities, measured in minutes as the interval between the recorded start and end time of each activity. The activities are consent (rcpcntime1/2), face perception test (rcpfctime1/2), perception questionnaire (rcpasptime1/2), cars perception test (rcpcrtime1/2).
Computed from start and end date/time item variables recorded for each activity. These date/time variables are not retained in the dataset.

* activity times: subtract start time from end time.
* then divide the difference (seconds) by 60 to obtain duration in minutes.
COMPUTE rcpcntime = DATEDIFF(rcpcnentm, rcpcnsttm, "seconds") / 60.
COMPUTE rcpfctime = DATEDIFF(rcpfcentm, rcpfcsttm, "seconds") / 60.
COMPUTE rcpasptime = DATEDIFF(rcpaspentm, rcpaspsttm, "seconds") / 60.
COMPUTE rcpcrtime = DATEDIFF(rcpcrentm, rcpcrsttm, "seconds") / 60.
EXECUTE.
* Activities do not have time limits, so twins could pause indefinitely.
* with the browser open without any meaningful activity.
* Hence very long times are meaningless: recode to missing.
* if more than 90 minutes (activities) or more than 30 minutes (consent).
RECODE rcpfctime rcpasptime rcpcrtime (90 THRU HIGHEST=SYSMIS).
RECODE rcpcntime (30 THRU HIGHEST=SYSMIS).
EXECUTE.
rcpcrtmd1/2, rcpfctmd1/2

Median item response time (in seconds) for the Cars Perception test (rcpcrtmd1/2) and for the Face Perception test (rcpfctmd1/2).
Computed from the response time item variables for every item in each test.

* Average item response time, computed as the median because the mean.
* is distorted by extreme outliers in some cases.
* Divide by 1000 to convert milliseconds to seconds.
COMPUTE rcpcrtmd = MEDIAN(rcpcrt1v1t, rcpcrt1v2t, rcpcrt1v3t, rcpcrt2v1t, rcpcrt2v2t, rcpcrt2v3t, rcpcrt3v1t, 
 rcpcrt3v2t, rcpcrt3v3t, rcpcrt4v1t, rcpcrt4v2t, rcpcrt4v3t, rcpcrt5v1t, rcpcrt5v2t, rcpcrt5v3t, rcpcrt6v1t, 
 rcpcrt6v2t, rcpcrt6v3t, rcpcrt01t, rcpcrt02t, rcpcrt03t, rcpcrt04t, rcpcrt05t, rcpcrt06t, rcpcrt07t, rcpcrt08t, 
 rcpcrt09t, rcpcrt10t, rcpcrt11t, rcpcrt12t, rcpcrt13t, rcpcrt14t, rcpcrt15t, rcpcrt16t, rcpcrt17t, rcpcrt18t, 
 rcpcrt19t, rcpcrt20t, rcpcrt21t, rcpcrt22t, rcpcrt23t, rcpcrt24t, rcpcrt25t, rcpcrt26t, rcpcrt27t, rcpcrt28t, 
 rcpcrt29t, rcpcrt30t, rcpcrt31t, rcpcrt32t, rcpcrt33t, rcpcrt34t, rcpcrt35t, rcpcrt36t, rcpcrt37t, rcpcrt38t, 
 rcpcrt39t, rcpcrt40t, rcpcrt41t, rcpcrt42t, rcpcrt43t, rcpcrt44t, rcpcrt45t, rcpcrt46t, rcpcrt47t, rcpcrt48t, 
 rcpcrt49t, rcpcrt50t, rcpcrt51t, rcpcrt52t, rcpcrt53t, rcpcrt54t ) / 1000.
COMPUTE rcpfctmd = MEDIAN(rcpfcb01t, rcpfcb02t, rcpfcb03t, rcpfcd01t, rcpfcd02t, rcpfcd03t, rcpfcj01t, rcpfcj02t, 
 rcpfcj03t, rcpfcm01t, rcpfcm02t, rcpfcm03t, rcpfcn01t, rcpfcn02t, rcpfcn03t, rcpfcz01t, rcpfcz02t, rcpfcz03t, 
 rcpfct01t, rcpfct02t, rcpfct03t, rcpfct04t, rcpfct05t, rcpfct06t, rcpfct07t, rcpfct08t, rcpfct09t, rcpfct10t, 
 rcpfct11t, rcpfct12t, rcpfct13t, rcpfct14t, rcpfct15t, rcpfct16t, rcpfct17t, rcpfct18t, rcpfct19t, rcpfct20t, 
 rcpfct21t, rcpfct22t, rcpfct23t, rcpfct24t, rcpfct25t, rcpfct26t, rcpfct27t, rcpfct28t, rcpfct29t, rcpfct30t, 
 rcpfct31t, rcpfct32t, rcpfct33t, rcpfct34t, rcpfct35t, rcpfct36t, rcpfct37t, rcpfct38t, rcpfct39t, rcpfct40t, 
 rcpfct41t, rcpfct42t, rcpfct43t, rcpfct44t, rcpfct45t, rcpfct46t, rcpfct47t, rcpfct48t, rcpfct49t, rcpfct50t, 
 rcpfct51t, rcpfct52t, rcpfct53t, rcpfct54t ) / 1000.
EXECUTE.
rcpLLCage1/2, rcpLLCdate1/2

See rcbLLCage1/2, etc above.

rcptime1/2

Total time (in minutes) spent on the activities of the Perception Study web battery, if all activities were completed.
Computed as the sum of the activity times, which are derived variables described elsewhere on this page.

* overall time: sum the activity times (require all four to be present).
COMPUTE rcptime = SUM.4(rcpcntime, rcpfctime, rcpasptime, rcpcrtime).
EXECUTE.
rcqage1/2, rcqalage1/2

See rcbage1/2, rcfage1/2, rckage1/2, rcnage1/2, rcpage1/2, rcqage1/2, rcqalage1/2 above.

rcqalgrdm1/2, rcqalsgrdm1/2, rcqaln1/2, rcqasn1/2, rcqalpsct1/2, rcqalspsct1/2

Composite variables derived from A and AS level results:
rcqaln1/2: number of A level grades reported;
rcqasn1/2: number of AS level grades reported;
rcqalgrdm1/2: mean grade for full A levels (excludes AS levels);
rcqalsgrdm1/2: overall mean grade for A and AS levels (AS levels having half-weighting);
rcqalpsct1/2: total point score for full A levels (excludes AS levels);
rcqalspsct1/2: total point score for A and AS levels combined.
The detailed methods for deriving these composites can be found in the syntax below. They are derived from the set of 6 related raw data items rcqalZgrd and rcqalZtyp (Z = 1 to 6 for up to six recorded results), in which rcqalZgrd recorded a grade (coded 1=E to 6=A*) and rcqalZtyp recorded the type or weighting (1=A-level, 0.5=AS-level).

* Derive A level composites.
* -------------------------.
* Numbers of A and AS levels.
NUMERIC rcqaln rcqasn (F1.0).
VARIABLE LEVEL rcqaln rcqasn (ORDINAL).
* Mean grades: A, AS and combined.
NUMERIC rcqalgrdm rcqasgrdm rcqalsgrdm (F4.2).
VARIABLE LEVEL rcqalgrdm rcqasgrdm rcqalsgrdm (SCALE).
* Point score A, AS and combined.
NUMERIC rcqalpsct rcqaspsct rcqalspsct (F5.3).
VARIABLE LEVEL rcqalpsct rcqaspsct rcqalspsct (SCALE).

* Count A and AS level grades reported.
DO IF (rcqdata1 = 1).
 COUNT rcqaln = rcqal1typ rcqal2typ rcqal3typ rcqal4typ rcqal5typ rcqal6typ (1).
 COUNT rcqasn = rcqal1typ rcqal2typ rcqal3typ rcqal4typ rcqal5typ rcqal6typ (0.5).
END IF.
EXECUTE.

* Point score: sum grades for A and AS - default 0 (if data present).
IF (rcqdata1 = 1) rcqalpsct = 0.
IF (rcqdata1 = 1) rcqaspsct = 0.
IF (rcqdata1 = 1) rcqalspsct = 0.
EXECUTE.
* A levels.
IF (rcqal1typ = 1) rcqalpsct = rcqalpsct + rcqal1grd.
IF (rcqal2typ = 1) rcqalpsct = rcqalpsct + rcqal2grd.
IF (rcqal3typ = 1) rcqalpsct = rcqalpsct + rcqal3grd.
IF (rcqal4typ = 1) rcqalpsct = rcqalpsct + rcqal4grd.
IF (rcqal5typ = 1) rcqalpsct = rcqalpsct + rcqal5grd.
IF (rcqal6typ = 1) rcqalpsct = rcqalpsct + rcqal6grd.
EXECUTE.
* AS - count as half the value of A levels.
IF (rcqal1typ = 0.5) rcqaspsct = rcqaspsct + (rcqal1grd / 2).
IF (rcqal2typ = 0.5) rcqaspsct = rcqaspsct + (rcqal2grd / 2).
IF (rcqal3typ = 0.5) rcqaspsct = rcqaspsct + (rcqal3grd / 2).
IF (rcqal4typ = 0.5) rcqaspsct = rcqaspsct + (rcqal4grd / 2).
IF (rcqal5typ = 0.5) rcqaspsct = rcqaspsct + (rcqal5grd / 2).
IF (rcqal6typ = 0.5) rcqaspsct = rcqaspsct + (rcqal6grd / 2).
EXECUTE.
* Combined: simply sum the A and AS point scores.
COMPUTE rcqalspsct = SUM.1(rcqalpsct, rcqaspsct).
EXECUTE.

* Mean grade - A level is point score divided by number of grades.
IF (rcqaln > 0) rcqalgrdm = rcqalpsct / rcqaln.
EXECUTE.
* AS: similarly but multiply by 2 to restore 1-6 scale.
IF (rcqasn > 0) rcqasgrdm = 2 * rcqaspsct / rcqasn.
EXECUTE.
* Combined: total point score divided by total number of grades (treating AS as half).
IF (SUM(rcqaln, rcqasn) > 0) rcqalsgrdm = rcqalspsct / SUM(rcqaln, (rcqasn / 2)).
EXECUTE.
* For final dataset, AS mean grade and AS point score are potentially confusing.
* so only retain mean grade and point score for A levels and combined A+AS.
rcqalLLCage1/2, rcqalLLCdate1/2

See rcbLLCage1/2, etc above.

rcqalsenggrdm1/2, rcqalshumgrdm1/2, rcqalslangrdm1/2, rcqalsmatgrdm1/2, rcqalsscigrdm1/2, rcqalstecgrdm1/2, rcqalsvocgrdm1/2

Mean grades, from combined A and AS levels, in the following subject areas:
English (rcqalsenggrdm),
Maths (rcqalsmatgrdm),
Science (rcqalsscigrdm),
Technology (rcqalstecgrdm),
Humanities (rcqalshumgrdm),
Languages (rcqalslangrdm),
Vocational (rcqalsvocgrdm).
Each is derived from raw A/AS level variables (not in the dataset). First, the subjects are grouped by selecting appropriate subject codes. Then, the number of reported results is counted in each group (counting an A level as 1 and an AS level as 0.5). The point score is also derived in each group, by multiplying the value (1 or 0.5) by the grade (from 1=E up to 6=A*) for each result, then summing. Finally, the mean grade can be calculated in each group by dividing the point score by the number of results.

* There are many A level subjects, most with low Ns in the dataset.
* so group them into broader categories to obtain mean grades.
* that will probably be more statistically useful.
* These mean grades will take into account AS as well as A level results.
* The 7 subject categories are.
* (1) English - language, literature and other variants.
* (2) Maths - includes further maths and statistics.
* (3) Science - biology, chemistry, physics plus rarer variants.
* (4) Language - all non-English languages, including Latin.
* (5) Technology - includes various design, technology, IT/ICT and engineering subjects.
* (6) Vocational - business studies, social care, travel and tourism and other work-specific subjects.
* (7) Humanities - everything else, including history, geography, arts, social sciences, law.
*    religious studies, psychology (many of which are rare subject choices).

* For each category, mean grade will be derived as point score divided by number.
* so set these up as temporary variables.
NUMERIC engn matn scin lann tecn vocn humn 
    engps matps scips lanps tecps vocps humps (F2.1).
* Give each of these a default 0 value to start with.
RECODE engn matn scin lann tecn vocn humn 
    engps matps scips lanps tecps vocps humps (ELSE=0).
EXECUTE.

* Loop through the set of 6 A/AS results recorded, in 3 sets of 6 variables.
* already placed in appropriate order: type (0.5=AS, 1=A), subject (integer codes).
* and grade (coded 1-6).
* In each loop, first select by subject code.
* then increment the number (by type) and point score (by type*grade).
DO REPEAT j = 1 TO 6 / type = rcqal1typ TO rcqal6typ 
    / subject = rcqal1sub TO rcqal6sub / grade = rcqal1grd TO rcqal6grd.
 DO IF (ANY(subject, 14, 48, 51, 126)).
 * English.
  COMPUTE engn = engn + type.
  COMPUTE engps = engps + (type * grade).
 ELSE IF (ANY(subject, 2, 13, 19, 103, 138)).
 * Maths.
  COMPUTE matn = matn + type.
  COMPUTE matps = matps + (type * grade).
 ELSE IF (ANY(subject, 3, 5, 6, 31, 70, 75)).
 * Science.
  COMPUTE scin = scin + type.
  COMPUTE scips = scips + (type * grade).
 ELSE IF (ANY(subject, 12, 18, 33, 73, 169)).
 * Languages.
  COMPUTE lann = lann + type.
  COMPUTE lanps = lanps + (type * grade).
 ELSE IF (ANY(subject, 16, 24, 30, 34, 37, 43, 57, 89)).
 * Technology.
  COMPUTE tecn = tecn + type.
  COMPUTE tecps = tecps + (type * grade).
 ELSE IF (ANY(subject, 9, 17, 21, 46, 49, 65, 113, 120, 170)).
 * Vocational.
  COMPUTE vocn = vocn + type.
  COMPUTE vocps = vocps + (type * grade).
 ELSE IF (ANY(subject, 7, 8, 10, 11, 15, 20, 22, 25, 26, 27, 35, 
    36, 38, 41, 45, 52, 53, 55, 59, 60, 64, 66, 67, 72, 85, 88)).
 * Humanities.
  COMPUTE humn = humn + type.
  COMPUTE humps = humps + (type * grade).
 END IF.
END REPEAT.
EXECUTE.

* Now derive mean grade in each subject group.
* Mean grade is point score divided by number (if number is non-zero).
IF (engn > 0) rcqalsenggrdm = engps / engn.
IF (matn > 0) rcqalsmatgrdm = matps / matn.
IF (scin > 0) rcqalsscigrdm = scips / scin.
IF (lann > 0) rcqalslangrdm = lanps / lann.
IF (tecn > 0) rcqalstecgrdm = tecps / tecn.
IF (vocn > 0) rcqalsvocgrdm = vocps / vocn.
IF (humn > 0) rcqalshumgrdm = humps / humn.
EXECUTE.
rcqLLCage1/2, rcqLLCdate1/2

See rcbLLCage1/2, etc above.

rcqqstatus1/2

Status of post-16 qualifications, with values 0=none, 1=still in progress, 2=finished with A-levels, 3=finished with some A-levels plus some others, 4=finished with qualifications other than A-levels (e.g. vocational or overseas).
Derived from a range of item variables related to qualifications, and from the numbers of A- and AS-level grades recorded (rcqaln and rcqasn, which are derived variables described elsewhere on this page).

* Attempt to categorise post-16 exam status in more detail than rcqqual.
* rcqqual has 4 values giving basic status (post-16 finished/in progress/not done).
* but it would be helpful also to distinguish between those who took A-levels, vocationals, or overseas.
* No post-16 studies: code as 0.
IF (rcqqual = 4) rcqqstatus = 0.
EXECUTE.
* Ongoing and unfinished post-16 studies: code as 1.
* if rcqqual = 2 or 3, ignoring those few cases having some A/AS levels.
IF (ANY(rcqqual,2,3)) rcqqstatus = 1.
EXECUTE.
* Finished post-16 studies (rcqqual=1).
DO IF (rcqqual=1).
* Divide into three sub-categories, coded 2, 3 and 4; pay attention to coding order below.
* Code 4: no A/AS levels but has others including vocational, Baccalaureate, overseas.
 IF (SUM(rcqaln, rcqasn) = 0 &
   (rcqnvqsub > 0 | rcqdipval > 0 | ANY(rcqothqual,1,2,3,4,6))) rcqqstatus = 4.
* Code 3: some A/AS levels mixed with another other type (except level 1/2).
 IF (SUM(rcqaln, rcqasn) > 0 &
   (rcqnvqsub > 0 | rcqdipval > 0 | ANY(rcqothqual,1,2,3,4,6))) rcqqstatus = 3.
* Code 2 (sometimes over-riding code 3 above0: A/AS levels as the main qualifications.
 * (A) any number of A/AS levels but no other significant qualifications.
 IF (SUM(rcqaln, rcqasn) > 0 & SYSMIS(rcqnvqsub) & SYSMIS(rcqdipval)
     & (SYSMIS(rcqothqual) | ANY(rcqothqual,5,7))) rcqqstatus = 2.
 * (B) if number of A-levels is at least 3 or at least 2 A-levels plus an AS-level.
 * regardless of any other qualifications.
 IF (rcqaln >= 3 | (rcqaln = 2 & rcqasn > 0)) rcqqstatus = 2.
END IF.
EXECUTE.
* These categories largely ignore rcqothqual=5 (level 1/2 qualifications, not really post-16).
* and rcqothqual=7 (reported A-levels without grades, not useful data).
rcqsctypg1/2

Estimated school type when twin was taking GCSEs, based on responses to the set of yes/no school category questions. Unresolvable contradictory responses to these questions are classified as 0=other. See syntax below for comments and descriptions of categories.
These questions were only included in the questionnaire for cohorts 3 and 4.

* Derive GCSE school type category.
* Based on variables added to the questionnaire for cohorts 3 and 4.
* Twins were asked about various school types, both at GCSE and after GCSE.
* but only categorise at GCSE (post-GCSE, most ticked sixth-form/FE college).
* Twins were able to tick all that applied, hence there are some contradictions.
* Syntax must be able to cope with missing data for some questions.
* Ignore the 3 questions (sixth form/FE, faith school, boarding) that were dropped after cohort 3.
* and ignore the single-sex school question because this overlaps with all other school types.
NUMERIC rcqsctypg (F1.0).
* Use default code of 0 (other/unknown).
* if at least one of the main school-type questions was answered affirmatively.
* which will be for cohorts 3/4 only (except a few who took exams a year late in cohort 2).
IF (SUM(rcqschomg, rcqsccomg, rcqscgrmg, rcqscindg, rcqscspcg, rcqscacdg) > 0) rcqsctypg = 0.
EXECUTE.
* The variable will be missing if twin did not tick 'yes' for any type of schooling.
* Main categories 1-5 as follows.
* 1: State non-selective schools: include 'comprehensive' and 'academy'.
IF (rcqsccomg = 1 | rcqscacdg = 1) rcqsctypg = 1.
EXECUTE.
* 2: Private (independent).
IF (rcqscindg = 1) rcqsctypg = 2.
EXECUTE.
* 3: Grammar.
IF (rcqscgrmg = 1) rcqsctypg = 3.
EXECUTE.
* 4: Special schools.
IF (rcqscspcg = 1) rcqsctypg = 4.
EXECUTE.
* 5: Home-educated.
* Only allow if no other school type yet selected for categories above.
IF (rcqschomg = 1 & rcqsctypg = 0) rcqsctypg = 5.
EXECUTE.

* Now deal with other contradictions and anomalies.
* Comprehensive + academy is OK, category 1 as above.
* Comprehensive/academy + grammar is not OK, recode as 0=other.
IF ((rcqsccomg = 1 | rcqscacdg = 1) & rcqscgrmg = 1) rcqsctypg = 0.
EXECUTE.
* Independent + comprehensive/academy is an unresolvable anomaly: recode as 0=other.
IF ((rcqsccomg = 1 | rcqscacdg = 1) & rcqscindg = 1) rcqsctypg = 0.
EXECUTE.
* Independent + grammar probably best matched with independent.
* (may have been grammar turned independent and retained name).
IF (rcqscgrmg = 1 & rcqscindg = 1) rcqsctypg = 2.
EXECUTE.
* Another other combination of 3 or 4 of these is anomalous: recode to 0 (other).
IF (SUM(rcqsccomg, rcqscgrmg, rcqscindg, rcqscacdg) > 2) rcqsctypg = 0.
EXECUTE.
* Special + independent is still (probably) best categorised as a special school, assumed fee-paying.
IF (rcqscspcg = 1 & rcqscindg = 1) rcqsctypg = 4.
EXECUTE.
* But special + comprehensive/academy/grammar doesn't make sense, recode as 0=other.
IF (rcqscspcg = 1 & (rcqsccomg = 1 | rcqscacdg = 1 | rcqscgrmg = 1)) rcqsctypg = 0.
EXECUTE.
rcqucast1/2

Estimated twin UCAS total point score, derived from all recorded results from UK post-16 qualifications (A/AS levels, EPQ, NVQ, Diploma, BTEC).
The UCAS points or 'tariffs' for each type of qualification are based on tables published by UCAS.
See comments in syntax below for method of computation.

* Recode grades into temporary variables holding UCAS tariff points.
* A-level grade A* = 140 points, grade A = 120 points, etc.
* Can use the same points for AS-levels and EPQ which will be halved.
RECODE
 rcqal1grd1 rcqal1grd2 rcqal2grd1 rcqal2grd2 rcqal3grd1 rcqal3grd2
 rcqal4grd1 rcqal4grd2 rcqal5grd1 rcqal5grd2 rcqal6grd1 rcqal6grd2
 rcqepqgrd1 rcqepqgrd2
 (6=140) (5=120) (4=100) (3=80) (2=60) (1=40)
INTO
 rcqal1ucas1 rcqal1ucas2 rcqal2ucas1 rcqal2ucas2 rcqal3ucas1 rcqal3ucas2
 rcqal4ucas1 rcqal4ucas2 rcqal5ucas1 rcqal5ucas2 rcqal6ucas1 rcqal6ucas2
 rcqepqucas1 rcqepqucas2 .
EXECUTE.
* sum these, weighting them by A level type (AS and EPQ points are half of A points).
COMPUTE rcqalucas1 = SUM((rcqal1ucas1 * rcqal1typ1), (rcqal2ucas1 * rcqal2typ1),
 (rcqal3ucas1 * rcqal3typ1), (rcqal4ucas1 * rcqal4typ1),
 (rcqal5ucas1 * rcqal5typ1), (rcqal6ucas1 * rcqal6typ1), (rcqepqucas1 * 0.5)).
COMPUTE rcqalucas2 = SUM((rcqal1ucas2 * rcqal1typ2), (rcqal2ucas2 * rcqal2typ2),
 (rcqal3ucas2 * rcqal3typ2), (rcqal4ucas2 * rcqal4typ2),
 (rcqal5ucas2 * rcqal5typ2), (rcqal6ucas2 * rcqal6typ2), (rcqepqucas2 * 0.5)).
EXECUTE.

* a level 3 NVQ pass is taken to be worth 160 points.
* which is equivalent to two A level passes at grade C.
IF (~SYSMIS(rcqnvqsub1)) rcqnvqucas1 = 160.
IF (~SYSMIS(rcqnvqsub2)) rcqnvqucas2 = 160.
EXECUTE.

* Level 3 Diplomas and BTECs have different points depending on type.
* Advanced Diploma (approx 3 A levels).
DO IF (rcqdiptyp1 = 1).
 RECODE rcqdipgrd1 (6=490) (5=420) (4=350) (3=280) (2=210) (1=140) INTO rcqdipucas1.
END IF.
DO IF (rcqdiptyp2 = 1).
 RECODE rcqdipgrd2 (6=490) (5=420) (4=350) (3=280) (2=210) (1=140) INTO rcqdipucas2.
END IF.
EXECUTE.
* Progression Diploma (approx 2 A levels).
DO IF (rcqdiptyp1 = 2).
 RECODE rcqdipgrd1 (6=350) (5=300) (4=250) (3=200) (2=150) (1=100) INTO rcqdipucas1.
END IF.
DO IF (rcqdiptyp2 = 2).
 RECODE rcqdipgrd2 (6=350) (5=300) (4=250) (3=200) (2=150) (1=100) INTO rcqdipucas2.
END IF.
EXECUTE.
* BTECs only have four grades (rough equivalents D*=A*, D=A, M=C, P=E).
* BTEC certificate (approx half an A level).
DO IF (rcqdiptyp1 = 3).
 RECODE rcqdipgrd1 (6=70) (5=60) (3=40) (1=20) INTO rcqdipucas1.
END IF.
DO IF (rcqdiptyp2 = 3).
 RECODE rcqdipgrd2 (6=70) (5=60) (3=40) (1=20) INTO rcqdipucas2.
END IF.
EXECUTE.
* BTEC subsidiary diploma (approx one A level).
DO IF (rcqdiptyp1 = 4).
 RECODE rcqdipgrd1 (6=140) (5=120) (3=80) (1=40) INTO rcqdipucas1.
END IF.
DO IF (rcqdiptyp2 = 4).
 RECODE rcqdipgrd2 (6=140) (5=120) (3=80) (1=40) INTO rcqdipucas2.
END IF.
EXECUTE.
* BTEC diploma (approx 2 A levels).
DO IF (rcqdiptyp1 = 5).
 RECODE rcqdipgrd1 (6=280) (5=240) (3=160) (1=80) INTO rcqdipucas1.
END IF.
DO IF (rcqdiptyp2 = 5).
 RECODE rcqdipgrd2 (6=280) (5=240) (3=160) (1=80) INTO rcqdipucas2.
END IF.
EXECUTE.
* BTEC extended diploma (approx 3 A levels).
DO IF (rcqdiptyp1 = 6).
 RECODE rcqdipgrd1 (6=420) (5=360) (3=240) (1=120) INTO rcqdipucas1.
END IF.
DO IF (rcqdiptyp2 = 6).
 RECODE rcqdipgrd2 (6=420) (5=360) (3=240) (1=120) INTO rcqdipucas2.
END IF.
EXECUTE.

* sum all ucas points.
COMPUTE rcqucast1 = SUM(rcqalucas1, rcqnvqucas1, rcqdipucas1).
COMPUTE rcqucast2 = SUM(rcqalucas2, rcqnvqucas2, rcqdipucas2).
EXECUTE.