***************************************************************SPF SPSS SCORING SYNTAX FOR E-PRIME DATA******************************************************** ***Last updated: Apr. 8th 2009***** ****Please send comments/improvements to michelangelo vianello@unipd.it**** *NOTES: *WORKS ONLY WITH SPSS <16. IN ORDER TO MAKE THIS SYNTAX WORK WITH SPSS V. > 17 THE 'SPF FlowersInsects.txt' FILE HAVE TO SAVED IN THE DIRECTORY IN WHICH SPSS IS INSTALLED *(E.G. C:\Programs\SPSSInc\Statistics17\). *BEFORE RUNNING THIS SYNTAX, .EDAT FILES HAVE TO BE MERGED USING E-MERGE APPLICATION AND CONVERTED INTO A .TXT FILE (SELECT SPSS WHEN ASKED) *WITH SPSS <16, THIS FILE HAVE TO BE LAUNCHED FROM THE SAME DIRECTORY IN WHICH THE .TXT DATA FILE IS STORED *THIS SYNTAX WORKS WITH A FLOWERS-INSECTS EVALUATIVE SPF (DOWNLOADABLE AT WWW.PROJECTIMPLICIT.NET/NOSEK/SPF/). IF THE E-PRIME SCRIPT WAS CHANGED, LABELS *IN THIS FILE (FLOWERS, INSECTS, BAD, GOOD) HAVE TO BE CHANGED ACCORDINGLY. ********STEP 1: IMPORT DATA IN SPSS FROM THE .TXT FILE******************************************* GET DATA /TYPE = TXT /FILE = 'SPF FlowersInsects.txt' /DELCASE = LINE /DELIMITERS = "\t" /ARRANGEMENT = DELIMITED /FIRSTCASE = 2 /IMPORTCASE = ALL /VARIABLES = ExperimentName A19 Subject F1.0 Session F1.0 Display.RefreshRate F6.2 Group F1.0 RandomSeed F11.2 SessionDate ADATE10 SessionTime TIME11.2 Block F1.0 BlockList F1.0 BlockList.Cycle F1.0 BlockList.Sample F1.0 ProcedureBlock A8 RunningBlock A9 Trial F2.0 Accuracy F1.0 Bad A8 BottomLabel A3 CorrResp A1 FinalRT F3.2 FLOWBAD.ACC F1.0 FLOWBAD.CRESP A1 FLOWBAD.RESP A1 FLOWBAD.RT F3.2 FlowBadSlide.ACC F1.0 FlowBadSlide.CRESP A1 FlowBadSlide.RESP A1 FlowBadSlide.RT F3.2 Flowers A13 FLOWGOOD.ACC F1.0 FLOWGOOD.CRESP A1 FLOWGOOD.RESP A1 FLOWGOOD.RT F3.2 FlowGoodSlide.ACC F1.0 FlowGoodSlide.CRESP A1 FlowGoodSlide.RESP A1 FlowGoodSlide.RT F3.2 Good A9 INSBAD.ACC F1.0 INSBAD.CRESP A1 INSBAD.RESP A1 INSBAD.RT F3.2 InsBadSlide.ACC F1.0 InsBadSlide.CRESP A1 InsBadSlide.RESP A1 InsBadSlide.RT F3.2 Insects A9 INSGOOD.ACC F1.0 INSGOOD.CRESP A1 INSGOOD.RESP A1 INSGOOD.RT F2.1 InsGoodSlide.ACC F1.0 InsGoodSlide.CRESP A1 InsGoodSlide.RESP A1 InsGoodSlide.RT F3.2 LeftLabel A7 ProcedureTrial A10 RightLabel A7 RunningTrial A17 StimuliBad F1.0 StimuliFlowersBad F1.0 StimuliFlowersGood F1.0 StimuliGood F1.0 StimuliInsectsBad F1.0 StimuliInsectsGood F1.0 TopLabel A4 TrialListCritical F3.0 TrialListCritical.Cycle F3.0 TrialListCritical.Sample F3.0 TrialListPractice F1.0 TrialListPractice.Cycle F2.1 TrialListPractice.Sample F2.1 . CACHE. EXECUTE. DATASET NAME DataFile1 WINDOW=FRONT. *Save file for future reference* SAVE OUTFILE ='SPF FlowersInsects Raw Data.sav'. *Select only critical trials and relevant variables* SELECT IF RunningTrial='TrialListCritical'. SAVE OUTFILE='SPF FlowersInsects Critical Lats.sav' /keep Subject Session TrialListCritical.Cycle ProcedureTrial FinalRT Accuracy TopLabel BottomLabel LeftLabel RightLabel Flowers Good Insects Bad. GET FILE='SPF FlowersInsects Critical Lats.sav' /RENAME TrialListCritical.Cycle=TrialNumber ProcedureTrial=TrialName. DATASET CLOSE DataFile1. ***********STEP 2: COMPUTE CRITERIA FOR SUBJECTS/TRIALS DELETION AND COMPUTE INDIVIDUAL MEANS AND SDs**************** COMPUTE error = 100*(1 - accuracy). EXE. *Mark trials with FinalRT < 300 ms (for possible subj discard and to provide a count) . COMPUTE FLAG_300 = 0 . IF (FinalRT < 300) FLAG_300 = 1 . *Mark trials with Lat > 4000 ms (for possible subj discard and to provide a count) . COMPUTE FLAG_4K = 0 . IF (FinalRT GT 4000) FLAG_4K = 1 . *Following line can be used to check frequencies of fast & slow responses & errors . FREQUENCIES FLAG_300 FLAG_4K ERROR . *Record criteria for potential use in subject discards and compute overall means and SDs. *This count can later be used as the basis for subject discard . AGGREGATE OUTFILE = 'CRITERIA.SAV' / BREAK = subject / PCT_300 = PGT(FLAG_300,0) / PCT_4k = PGT(FLAG_4k,0) / ERRORPCT = MEAN (ERROR) / NTRIALS = N . *Drop trials slower than 4000 ms and faster 300 ms. SELECT IF (FinalRT LE 4000) . SELECT IF (FinalRT GE 300) . EXE. AGGREGATE OUTFILE = 'SPF.OVERALL.MEANS&SDs.SAV' / BREAK = subject / AVELTNCY = MEAN (FinalRT) / OVERALLSD = SD(FinalRT). * The following aggregate command computes trial means needed for the D measures (four for each subject). AGGREGATE OUTFILE = * / BREAK = subject trialname / Mean_Lat mn_error = MEAN(FinalRT error) / NTRIALS = N . SORT CASES BY Subject trialname. CASESTOVARS /ID = Subject /INDEX=trialname /GROUPBY = VARIABLE /DROP = mn_error NTRIALS. *Save this as a record of this stage of analysis . SAVE OUTFILE = 'SPF.4_MEANS.SAV' / RENAME TrialFBad=MeanLatFB TrialFGood=MeanLatFG TrialIBad=MeanLatIB TrialIGood=MeanLatIG. *********STEP 3: MATCH FILES AND COMPUTE Ds******************** *Add labels to CRITERIA.SAV . GET FILE = 'CRITERIA.SAV' . VARIABLE LABELS PCT_300 '% Latencies below 300 ms' / PCT_4K '% Latencies above 4000 ms' / ERRORPCT 'Overall % errors' / NTRIALS 'Total # of critical trials' . FORMAT PCT_300 PCT_4k ERRORPCT (F6.1) subject (F7.0) . SAVE OUTFILE = 'CRITERIA.SAV' . *Add labels to SPF.OVERALL.MEANS&SDs.SAV. GET FILE = 'SPF.OVERALL.MEANS&SDs.SAV' . VARIABLE LABELS AVELTNCY 'Overall average Lat (ms)' / OVERALLSD 'Overall SD (ms)'. FORMAT AVELTNCY OVERALLSD (F7.1). SAVE OUTFILE = 'SPF.OVERALL.MEANS&SDs.SAV' . *Combine, compute Ds, and save . MATCH FILES FILE = 'SPF.4_MEANS.SAV' / FILE = 'CRITERIA.SAV' / FILE ='SPF.OVERALL.MEANS&SDs.SAV' /BY subject . COMPUTE D.FB=(MeanLatFB - AVELTNCY ) / OVERALLSD. COMPUTE D.FG=(MeanLatFG - AVELTNCY ) / OVERALLSD. COMPUTE D.IB=(MeanLatIB - AVELTNCY ) / OVERALLSD. COMPUTE D.IG=(MeanLatIG - AVELTNCY ) / OVERALLSD. SAVE OUTFILE = 'SPF_4Ds_ALLMEANS&CRITERIA.SAV' . DES VARIABLES= D.FB D.FG D.IB D.IG.