Search code examples
spss

SPSS selection of same ID rows based on difference between rows


I have a dataset where I have rows of data for each ID. Each row reflects a different time each ID has accessed the website. I have also created a variable which tells me how many months there were between each visit. I want to select all the cases from time 1 to last time value for each ID if they have returned after at least 1 month. What do I do?

ID Time MonthSince
1    1      .  
1    2      0   
2    1      .  
2    2      1  
3    1      .  
3    2      0  

I would like the dataset to look as follows:

 ID Time MonthSince Filter
    1    1      .  Not Selected
    1    2      0  Not Selected 
    2    1      .  Selected
    2    2      1  Selected
    3    1      .  Not Selected
    3    2      0  Not Selected

Solution

  • What I suggest is calculate the total number of months in MonthSince. If this total is zero, we know there wasn't more then a month before the last visit and we can filter these cases out:

    aggregate outfile=* mode=addvariables/break=ID/TotMonths=sum(MonthSince).
    select if TotMonths>0.