Вы находитесь на странице: 1из 3

' ============== Get data

GET DATA /TYPE = TXT


/FILE = 'C:\Users\David\Downloads\tpo_indiv_qs(3).csv'
/DELCASE = LINE
/DELIMITERS = ", "
/QUALIFIER = '"'
/ARRANGEMENT = DELIMITED
/FIRSTCASE = 2
/IMPORTCASE = ALL
/VARIABLES =
id F2.0
pid_A F7.0
date_added A19
time_completed A19
completed F1.0
section_order F1.0
question_order A29
current_section F2.0
q1 F2.0
q2 F2.0
q3 F2.0
q4 F2.0
q5 F2.0
q6 F2.0
q7 F2.0
q8 F2.0
q9 F2.0
q10 F2.0
q11 F2.0
q12 F2.0
q13 F2.0
pid F7.0
sex F1.0
d_o_b A10
countryofbirth A2
nativelanguage A10
.
CACHE.
EXECUTE.
DATASET NAME DataSet3 WINDOW=FRONT.
' ============== Filter incomplete protocols

USE ALL.
COMPUTE filter_$=(completed = 1).
VARIABLE LABEL filter_$ 'completed = 1 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMAT filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE .
' ============== Filter protocols completed by users who are admins of this test
USE ALL.
COMPUTE filter_$=(pid <> 4887814 & pid <> 1415132 & pid <> 4897420 & pid
<> 4911783).
VARIABLE LABEL filter_$ 'pid <> 4887814 & pid <> 1415132 & pid <> 4897420 '+
'& pid <> 4911783 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMAT filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE .
' ============== Assign missing values and then count them
EXECUTE.
MISSING VALUES q1 to q13 (-1 0).
COUNT missing_answers_tpo = q1 to q13(MISSING).
EXECUTE.
' ============== Filter where there are more than 2 missing values
USE ALL.
COMPUTE filter_$=(missing_answers_tpo < 3).
VARIABLE LABEL filter_$ 'missing_answers_tpo < 3 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMAT filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE .
' ============== Compute person and thing score
COMPUTE person_orientation_score = MEAN(q1 to q8).
COMPUTE thing_orientation_score = MEAN(q9 to q13).
EXECUTE.
' ============== Delete our filtered protocols
FILTER OFF.
USE ALL.
SELECT IF(NOT(filter_$ =0)).
EXECUTE .
' ============== Identify duplicate cases, and select only the first protocol fo
r each user, delete all others
* Identify Duplicate Cases.
SORT CASES BY pid(A) .
MATCH FILES /FILE = * /BY pid
/FIRST = PrimaryFirst /LAST = PrimaryLast.
DO IF (PrimaryFirst).
COMPUTE MatchSequence = 1 - PrimaryLast.
ELSE.
COMPUTE MatchSequence = MatchSequence + 1.
END IF.
LEAVE MatchSequence.
FORMAT MatchSequence (f7).
COMPUTE InDupGrp = MatchSequence > 0.
SORT CASES InDupGrp(D).
MATCH FILES /FILE = * /DROP = PrimaryLast InDupGrp MatchSequence.
VARIABLE LABELS PrimaryFirst 'Indicator of each first matching case as Prim'+
'ary' .
VALUE LABELS PrimaryFirst 0 'Duplicate Case' 1 'Primary Case'.
VARIABLE LEVEL PrimaryFirst (ORDINAL).
FREQUENCIES VARIABLES = PrimaryFirst .
EXECUTE.
FILTER OFF.
USE ALL.
SELECT IF(PrimaryFirst = 1).
EXECUTE .
' ============== Mean/SD for all users

DESCRIPTIVES
VARIABLES=person_orientation_score thing_orientation_score
/STATISTICS=MEAN STDDEV MIN MAX .
' ============== Split file by gender, and then do mean/SD for each gender

SORT CASES BY sex .


SPLIT FILE
SEPARATE BY sex .
DESCRIPTIVES
VARIABLES=person_orientation_score thing_orientation_score
/STATISTICS=MEAN STDDEV MIN MAX .
' ============== Reliability analysis for the two scales
RELIABILITY
/VARIABLES=q9 q10 q11 q12 q13
/SCALE('thing') ALL/MODEL=ALPHA.
RELIABILITY
/VARIABLES=q1 q2 q3 q4 q5 q6 q7 q8
/SCALE('person') ALL/MODEL=ALPHA.

Вам также может понравиться