saving MATRIX output to SAV file
Posted by
Beckstead, Jason on
Feb 21, 2015; 4:52pm
URL: http://spssx-discussion.165.s1.nabble.com/saving-MATRIX-output-to-SAV-file-tp5728761.html
I am using MATRIX/ END MATRIX to calculate the determinant of a correlation matrix. In my data file I have
6 variables, each is a correlation coefficient from a sample. Each row of the data file is from a different sample created as part of a Monte Carlo simulation, so the file has about 10,000 rows. I need to select a row (6 correlations
for a sample) pass the values to MATRIX get the determinant, and then write the sample id and the value of the determinant to an external SAV file that I can then match to the original data file.
I put the MATRIX code into a macro loop which runs, but the SAVE command overwrites rather than appends the results.
My code so far looks like this.
GET FILE='CNTR_SIM3_12CONDS.SAV'
/KEEP= rYX1u rYX2u rYpdctu rX1X2u rX1pdctu rX2pdctu SAMPLE_.
SELECT IF SAMPLE_<=100.
DEFINE !DETS (!POS !TOKENS(1)).
!DO !I = 1 !TO !1.
TEMP.
SELECT IF SAMPLE_=!I.
MATRIX.
GET VALS.
COMPUTE R=MAKE(4,4,1).
COMPUTE R(2,1)=VALS(1).
COMPUTE R(3,1)=VALS(2).
COMPUTE R(4,1)=VALS(3).
COMPUTE R(3,2)=VALS(4).
COMPUTE R(4,2)=VALS(5).
COMPUTE R(4,3)=VALS(6).
COMPUTE R(1,2)=VALS(1).
COMPUTE R(1,3)=VALS(2).
COMPUTE R(1,4)=VALS(3).
COMPUTE R(2,3)=VALS(4).
COMPUTE R(2,4)=VALS(5).
COMPUTE R(3,4)=VALS(6).
COMPUTE SAMPLE_=VALS(7).
COMPUTE D=DET(R).
COMPUTE RST={SAMPLE_,D}.
PRINT RST.
SAVE RST/OUTFILE='DETS.SAV'
/VARIABLES=SMP DET.
END MATRIX.
!DOEND.
!ENDDEFINE.
!DETS 100.
Any help would be much appreciated.
Jason
_____________________________________________________________
Jason W. Beckstead, Ph.D.
Associate Professor/Quantitative Methodologist
University of South Florida College of Nursing
12901 Bruce B. Downs Blvd., MDC22, Tampa, FL 33612, USA
Statistical Editor, International Journal of Nursing Studies
phone: +1.813.974.7667 fax: +1.813.974.5418
personal website: http://personal.health.usf.edu/jbeckste/
International Journal of Nursing Studies http://www.elsevier.com/ijns
=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD