Search code examples
loopsspss

SPSS :Loop through the values of variable


I have a dataset that has patient data according to the site they visited our mobile clinic. I have now written up a series of commands such as freqs and crosstabs to produce the analyses I need, however I would like this to be done for patients at each site, rather than the dataset as whole. If I had only one site, a mere filter command with the variable that specifies a patient's site would suffice, but alas I have 19 sites, so I would like to find a way to loop through my code to produce these outputs for each site. That is to say for i in 1 to 19: 1. Take the i th site 2. Compute a filter for this i th site 3. Run the tables using this filtered data of patients at ith site

Here is my first attempt using DO REPEA. I also tried using LOOP earler. However it does not work I keep getting an error even though these are closed loops. Is there a way to do this in SPSS syntax? Bear in mind I do not know Python well enough to do this using that plugin.

*LOOP #ind= 1 TO 19 BY 1.
DO REPEAT #ind= 1 TO 20.
****8888888888888888888888888888888888888888888888888888888   Select the Site here.
COMPUTE filter_site=(RCDSITE=#ind).
USE ALL.
FILTER BY filter_site.
**********************Step 3: Apply the necessary code for tables

*********Participation in the wellness screening, we actually do not care about those who did FP as we are not reporting it.

COUNT BIO= CheckB (1).
 * COUNT FPS=CheckF(1).

 * COUNT BnF= CheckB CheckF(1).
  VAL LABEL BIO 
1 ' Has the Wellness screening'
0 'Does not have the wellness screening'.
*VAL LABEL FPS
1 'Has the First patient survey'.
 * VAL LABEL BnF
1 'Has either Wellness or FPS'
2 'Has both surveys done'.

FREQ BIO.

*************************Use simple math to calcuate those who only did the Wellness/First Patient survey FUB= F+B -FnB.
*******************************************************Executive Summary.


 ***********Blood Pressure.
FREQ BP.

*******************BMI.
FREQ BMI.

******************Waist Circumference.

FREQ OBESITY. 


******************Glucose.

FREQ GLUCOSE.

*******************Cholesterol.

FREQ TC.



************************ Heamoglobin.

FREQ HAEMOGLOBIN.



*********************HIV.


FREQ HIV.

******************************************************************************I Lifestyle and General Health.
MISSING VALUES Gender GroupDep B8 to B13 ('').
******************Graphs 3.1

Solution

  • Is this just Frequencies you are producing? Try the SPLIT procedure by the variable RCDSITE. Should be enough.