second lowest /higest value

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

second lowest /higest value

ANDRES ALBERTO BURGA LEON

Hello to everybody:

I have a data list with five variables (var1 to var5)

I need to create a new variable that contains the second lowest and other thas contains the second higest:

var1 var2 var3 var4 var5
23 45 21 45
34 56 78 34
98 23 36 27

for the fist case, var6 would be 21, for the second 34, and for the third case 23.

var7 would be 45 for the fisrt case, 78 for the second and 98 for the first.

How coulld I implement this with SPSS syntax?

Kindly

Andrés

Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

David Marso
Administrator
You state you have 5 variables but display only 4.  
Your description is not consistent with the data you present.
See MIN and MAX functions then look at DO REPEAT .
---
ANDRES ALBERTO BURGA LEON wrote
Hello to everybody:

I have a data list with five variables (var1 to var5)

I need to create a new variable that contains the second lowest and other
thas contains the second higest:

var1 var2 var3 var4 var5
23 45 21 45
34 56 78 34
98 23 36 27

for the fist case, var6 would be 21, for the second 34, and for the third
case 23.

var7 would be 45 for the fisrt case, 78 for the second and 98 for the
first.

How coulld I implement this with SPSS syntax?

Kindly

Andrés
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

David Marso
Administrator
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.

DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.
COMPUTE #XMIN=MIN(x1 to x5).
COMPUTE #XMAX=MAX(x1 to x5).
VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX .
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #Found=1.
+      END IF.
+  END LOOP IF #found.
END REPEAT.
COMPUTE MIN2=MIN(#x1 TO #X5).
COMPUTE MAX2=MAX(#x1 TO #X5).
LIST.
David Marso wrote
You state you have 5 variables but display only 4.  
Your description is not consistent with the data you present.
See MIN and MAX functions then look at DO REPEAT .
---
ANDRES ALBERTO BURGA LEON wrote
Hello to everybody:

I have a data list with five variables (var1 to var5)

I need to create a new variable that contains the second lowest and other
thas contains the second higest:

var1 var2 var3 var4 var5
23 45 21 45
34 56 78 34
98 23 36 27

for the fist case, var6 would be 21, for the second 34, and for the third
case 23.

var7 would be 45 for the fisrt case, 78 for the second and 98 for the
first.

How coulld I implement this with SPSS syntax?

Kindly

Andrés
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

David Marso
Administrator
An eye-opening use of DO REPEAT ;=)
--
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.
DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.

VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
+  COMPUTE FX=FN(X1 TO X5).
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #found=1.
+      END IF.
+  END LOOP IF #found.
+  COMPUTE FX2=FN(#x1 TO #X5).
END REPEAT.
LIST.

David Marso wrote
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.

DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.
COMPUTE #XMIN=MIN(x1 to x5).
COMPUTE #XMAX=MAX(x1 to x5).
VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX .
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #Found=1.
+      END IF.
+  END LOOP IF #found.
END REPEAT.
COMPUTE MIN2=MIN(#x1 TO #X5).
COMPUTE MAX2=MAX(#x1 TO #X5).
LIST.
David Marso wrote
You state you have 5 variables but display only 4.  
Your description is not consistent with the data you present.
See MIN and MAX functions then look at DO REPEAT .
---
ANDRES ALBERTO BURGA LEON wrote
Hello to everybody:

I have a data list with five variables (var1 to var5)

I need to create a new variable that contains the second lowest and other
thas contains the second higest:

var1 var2 var3 var4 var5
23 45 21 45
34 56 78 34
98 23 36 27

for the fist case, var6 would be 21, for the second 34, and for the third
case 23.

var7 would be 45 for the fisrt case, 78 for the second and 98 for the
first.

How coulld I implement this with SPSS syntax?

Kindly

Andrés
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

Bruce Weaver
Administrator
Yep, that's neat.  Didn't someone on this list (maybe you) once describe DO-REPEAT as a poor man's macro?


David Marso wrote
An eye-opening use of DO REPEAT ;=)
--
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.
DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.

VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
+  COMPUTE FX=FN(X1 TO X5).
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #found=1.
+      END IF.
+  END LOOP IF #found.
+  COMPUTE FX2=FN(#x1 TO #X5).
END REPEAT.
LIST.

David Marso wrote
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.

DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.
COMPUTE #XMIN=MIN(x1 to x5).
COMPUTE #XMAX=MAX(x1 to x5).
VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX .
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #Found=1.
+      END IF.
+  END LOOP IF #found.
END REPEAT.
COMPUTE MIN2=MIN(#x1 TO #X5).
COMPUTE MAX2=MAX(#x1 TO #X5).
LIST.
David Marso wrote
You state you have 5 variables but display only 4.  
Your description is not consistent with the data you present.
See MIN and MAX functions then look at DO REPEAT .
---
ANDRES ALBERTO BURGA LEON wrote
Hello to everybody:

I have a data list with five variables (var1 to var5)

I need to create a new variable that contains the second lowest and other
thas contains the second higest:

var1 var2 var3 var4 var5
23 45 21 45
34 56 78 34
98 23 36 27

for the fist case, var6 would be 21, for the second 34, and for the third
case 23.

var7 would be 45 for the fisrt case, 78 for the second and 98 for the
first.

How coulld I implement this with SPSS syntax?

Kindly

Andrés
--
Bruce Weaver
bweaver@lakeheadu.ca
http://sites.google.com/a/lakeheadu.ca/bweaver/

"When all else fails, RTFM."

PLEASE NOTE THE FOLLOWING: 
1. My Hotmail account is not monitored regularly. To send me an e-mail, please use the address shown above.
2. The SPSSX Discussion forum on Nabble is no longer linked to the SPSSX-L listserv administered by UGA (https://listserv.uga.edu/).
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

Maguin, Eugene
In reply to this post by David Marso
David,

I'm not familiar with the 'FN' function in these two lines (and I can't find an entry for it in the csr). Please explain.
+  COMPUTE FX=FN(X1 TO X5).
+  COMPUTE FX2=FN(#x1 TO #X5).

Thanks, Gene Maguin


-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of David Marso
Sent: Tuesday, October 16, 2012 12:59 AM
To: [hidden email]
Subject: Re: second lowest /higest value

An eye-opening use of DO REPEAT ;=)
--
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.
DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.

VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
+  COMPUTE FX=FN(X1 TO X5).
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #found=1.
+      END IF.
+  END LOOP IF #found.
+  COMPUTE FX2=FN(#x1 TO #X5).
END REPEAT.
LIST.


David Marso wrote

> data list free/ x1 to x5.
> begin data
> 33 43 43 45 34
> 21 34 45 41 24
> 54 21 34 21 52
> end data.
>
> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
> +  COMPUTE cpy=old.
> END REPEAT.
> COMPUTE #XMIN=MIN(x1 to x5).
> COMPUTE #XMAX=MAX(x1 to x5).
> VECTOR #X=#X1 TO #x5.
> DO REPEAT FX=#XMIN #XMAX .
> +  COMPUTE #Found=0.
> +    LOOP #=1 TO 5.
> +      DO IF #X(#)=FX.
> +        COMPUTE #X(#)=$SYSMIS.
> +        COMPUTE #Found=1.
> +      END IF.
> +  END LOOP IF #found.
> END REPEAT.
> COMPUTE MIN2=MIN(#x1 TO #X5).
> COMPUTE MAX2=MAX(#x1 TO #X5).
> LIST.
> David Marso wrote
>> You state you have 5 variables but display only 4.
>> Your description is not consistent with the data you present.
>> See MIN and MAX functions then look at DO REPEAT .
>> ---
>> ANDRES ALBERTO BURGA LEON wrote
>>> Hello to everybody:
>>>
>>> I have a data list with five variables (var1 to var5)
>>>
>>> I need to create a new variable that contains the second lowest and
>>> other thas contains the second higest:
>>>
>>> var1 var2 var3 var4 var5
>>> 23 45 21 45
>>> 34 56 78 34
>>> 98 23 36 27
>>>
>>> for the fist case, var6 would be 21, for the second 34, and for the
>>> third case 23.
>>>
>>> var7 would be 45 for the fisrt case, 78 for the second and 98 for
>>> the first.
>>>
>>> How coulld I implement this with SPSS syntax?
>>>
>>> Kindly
>>>
>>> Andrés





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-value-tp5715660p5715663.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
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

=====================
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
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

David Marso
Administrator
KEY: DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
As Bruce noted my passing reference to DO REPEAT as "poor man's macro".
I am passing the function names to DO REPEAT and hence avoiding the
> COMPUTE #XMIN=MIN(x1 to x5).
> COMPUTE #XMAX=MAX(x1 to x5).
.....
> COMPUTE MIN2=MIN(#x1 TO #X5).
> COMPUTE MAX2=MAX(#x1 TO #X5).

Maguin, Eugene wrote
David,

I'm not familiar with the 'FN' function in these two lines (and I can't find an entry for it in the csr). Please explain.
+  COMPUTE FX=FN(X1 TO X5).
+  COMPUTE FX2=FN(#x1 TO #X5).

Thanks, Gene Maguin


-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of David Marso
Sent: Tuesday, October 16, 2012 12:59 AM
To: [hidden email]
Subject: Re: second lowest /higest value

An eye-opening use of DO REPEAT ;=)
--
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.
DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.

VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
+  COMPUTE FX=FN(X1 TO X5).
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #found=1.
+      END IF.
+  END LOOP IF #found.
+  COMPUTE FX2=FN(#x1 TO #X5).
END REPEAT.
LIST.


David Marso wrote
> data list free/ x1 to x5.
> begin data
> 33 43 43 45 34
> 21 34 45 41 24
> 54 21 34 21 52
> end data.
>
> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
> +  COMPUTE cpy=old.
> END REPEAT.
> COMPUTE #XMIN=MIN(x1 to x5).
> COMPUTE #XMAX=MAX(x1 to x5).
> VECTOR #X=#X1 TO #x5.
> DO REPEAT FX=#XMIN #XMAX .
> +  COMPUTE #Found=0.
> +    LOOP #=1 TO 5.
> +      DO IF #X(#)=FX.
> +        COMPUTE #X(#)=$SYSMIS.
> +        COMPUTE #Found=1.
> +      END IF.
> +  END LOOP IF #found.
> END REPEAT.
> COMPUTE MIN2=MIN(#x1 TO #X5).
> COMPUTE MAX2=MAX(#x1 TO #X5).
> LIST.
> David Marso wrote
>> You state you have 5 variables but display only 4.
>> Your description is not consistent with the data you present.
>> See MIN and MAX functions then look at DO REPEAT .
>> ---
>> ANDRES ALBERTO BURGA LEON wrote
>>> Hello to everybody:
>>>
>>> I have a data list with five variables (var1 to var5)
>>>
>>> I need to create a new variable that contains the second lowest and
>>> other thas contains the second higest:
>>>
>>> var1 var2 var3 var4 var5
>>> 23 45 21 45
>>> 34 56 78 34
>>> 98 23 36 27
>>>
>>> for the fist case, var6 would be 21, for the second 34, and for the
>>> third case 23.
>>>
>>> var7 would be 45 for the fisrt case, 78 for the second and 98 for
>>> the first.
>>>
>>> How coulld I implement this with SPSS syntax?
>>>
>>> Kindly
>>>
>>> Andrés





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-value-tp5715660p5715663.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
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

=====================
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
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

Maguin, Eugene
Oooooooooooooooh! This is one of the things that irritates me about the spss documentation: it is incomplete. As I read the documentation, what you did is incorrect and should have generated an error. I don't know how you knew that it wouldn't but I'm glad you did because I learned something. I'll bet there is a lot more of this sort of thing hiding in the code.

Gene Maguin



-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of David Marso
Sent: Tuesday, October 16, 2012 9:11 AM
To: [hidden email]
Subject: Re: second lowest /higest value

KEY: DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/*FN=MIN MAX *.
As Bruce noted my passing reference to DO REPEAT as "poor man's macro".
I am passing the function names to DO REPEAT and hence avoiding the
> COMPUTE #XMIN=MIN(x1 to x5).
> COMPUTE #XMAX=MAX(x1 to x5).
.....
> COMPUTE MIN2=MIN(#x1 TO #X5).
> COMPUTE MAX2=MAX(#x1 TO #X5).


Maguin, Eugene wrote

> David,
>
> I'm not familiar with the 'FN' function in these two lines (and I
> can't find an entry for it in the csr). Please explain.
> +  COMPUTE FX=FN(X1 TO X5).
> +  COMPUTE FX2=FN(#x1 TO #X5).
>
> Thanks, Gene Maguin
>
>
> -----Original Message-----
> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of David Marso
> Sent: Tuesday, October 16, 2012 12:59 AM
> To:

> SPSSX-L@.UGA

> Subject: Re: second lowest /higest value
>
> An eye-opening use of DO REPEAT ;=)
> --
> data list free/ x1 to x5.
> begin data
> 33 43 43 45 34
> 21 34 45 41 24
> 54 21 34 21 52
> end data.
> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
> +  COMPUTE cpy=old.
> END REPEAT.
>
> VECTOR #X=#X1 TO #x5.
> DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
> +  COMPUTE FX=FN(X1 TO X5).
> +  COMPUTE #Found=0.
> +    LOOP #=1 TO 5.
> +      DO IF #X(#)=FX.
> +        COMPUTE #X(#)=$SYSMIS.
> +        COMPUTE #found=1.
> +      END IF.
> +  END LOOP IF #found.
> +  COMPUTE FX2=FN(#x1 TO #X5).
> END REPEAT.
> LIST.
>
>
> David Marso wrote
>> data list free/ x1 to x5.
>> begin data
>> 33 43 43 45 34
>> 21 34 45 41 24
>> 54 21 34 21 52
>> end data.
>>
>> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
>> +  COMPUTE cpy=old.
>> END REPEAT.
>> COMPUTE #XMIN=MIN(x1 to x5).
>> COMPUTE #XMAX=MAX(x1 to x5).
>> VECTOR #X=#X1 TO #x5.
>> DO REPEAT FX=#XMIN #XMAX .
>> +  COMPUTE #Found=0.
>> +    LOOP #=1 TO 5.
>> +      DO IF #X(#)=FX.
>> +        COMPUTE #X(#)=$SYSMIS.
>> +        COMPUTE #Found=1.
>> +      END IF.
>> +  END LOOP IF #found.
>> END REPEAT.
>> COMPUTE MIN2=MIN(#x1 TO #X5).
>> COMPUTE MAX2=MAX(#x1 TO #X5).
>> LIST.
>> David Marso wrote
>>> You state you have 5 variables but display only 4.
>>> Your description is not consistent with the data you present.
>>> See MIN and MAX functions then look at DO REPEAT .
>>> ---
>>> ANDRES ALBERTO BURGA LEON wrote
>>>> Hello to everybody:
>>>>
>>>> I have a data list with five variables (var1 to var5)
>>>>
>>>> I need to create a new variable that contains the second lowest and
>>>> other thas contains the second higest:
>>>>
>>>> var1 var2 var3 var4 var5
>>>> 23 45 21 45
>>>> 34 56 78 34
>>>> 98 23 36 27
>>>>
>>>> for the fist case, var6 would be 21, for the second 34, and for the
>>>> third case 23.
>>>>
>>>> var7 would be 45 for the fisrt case, 78 for the second and 98 for
>>>> the first.
>>>>
>>>> How coulld I implement this with SPSS syntax?
>>>>
>>>> Kindly
>>>>
>>>> Andrés
>
>
>
>
>
> -----
> Please reply to the list and not to my personal email.
> Those desiring my consulting or training services please feel free to
> email me.
> --
> View this message in context:
> http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-val
> ue-tp5715660p5715663.html Sent from the SPSSX Discussion mailing list
> archive at Nabble.com.
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-value-tp5715660p5715669.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
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

=====================
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
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

Kirill Orlov
In reply to this post by David Marso
Two of other possibilities

data list list /x1 to x6 (6f1).
begin data
1� � � 0� � � 0� � � 0� � � 3� � � 4
3� � � 3� � � 5� � � 3� � � 4� � � 1
3� � � 2� � � 0� � � 3� � � 3� � � 3
3� � � 4� � � 3� � � 3� � � 2� � � 2
3� � � 4� � � 4� � � 3� � � 5� � � 4
2� � � 3� � � 2� � � 2� � � 4� � � 3
end data.

For second maximal data point:

recode x1 to x6 (else=copy) into #x1 to #x6.
comp max2= max(x1 to x6).
do rep x= x1 to x6 /#x= #x1 to #x6.
comp #x= $sysmis.
comp max2= min(max2,max(#x1 to #x6)).
comp #x= x.
end rep.
exec.

or

recode x1 to x6 (else=copy) into #x1 to #x6.
vector x= x1 to x6 /#x= #x1 to #x6.
comp #max= max(x1 to x6).
loop #i= 1 to 6.
comp #x(#i)= $sysmis.
comp max2= max(#x1 to #x6).
comp #x(#i)= x(#i).
end loop if max2<#max.
exec.

for second minimal datum - will be symmetrically analoguous.


16.10.2012 8:15, David Marso пишет:
data list free/ x1 to x5.
begin data
33 43 43 45 34
21 34 45 41 24
54 21 34 21 52
end data.

DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
+  COMPUTE cpy=old.
END REPEAT.
COMPUTE #XMIN=MIN(x1 to x5).
COMPUTE #XMAX=MAX(x1 to x5).
VECTOR #X=#X1 TO #x5.
DO REPEAT FX=#XMIN #XMAX .
+  COMPUTE #Found=0.
+    LOOP #=1 TO 5.
+      DO IF #X(#)=FX.
+        COMPUTE #X(#)=$SYSMIS.
+        COMPUTE #Found=1.
+      END IF.
+  END LOOP IF #found.
END REPEAT.
COMPUTE MIN2=MIN(#x1 TO #X5).
COMPUTE MAX2=MAX(#x1 TO #X5).
LIST.

David Marso wrote
You state you have 5 variables but display only 4.
Your description is not consistent with the data you present.
See MIN and MAX functions then look at DO REPEAT .
---
ANDRES ALBERTO BURGA LEON wrote
Hello to everybody:

I have a data list with five variables (var1 to var5)

I need to create a new variable that contains the second lowest and other
thas contains the second higest:

var1 var2 var3 var4 var5
23 45 21 45
34 56 78 34
98 23 36 27

for the fist case, var6 would be 21, for the second 34, and for the third
case 23.

var7 would be 45 for the fisrt case, 78 for the second and 98 for the
first.

How coulld I implement this with SPSS syntax?

Kindly

Andrés



-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-value-tp5715660p5715662.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
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



Reply | Threaded
Open this post in threaded view
|

Re: second lowest /highest value

Jon K Peck
In reply to this post by Bruce Weaver
And here is a Python solution.  v2 and v4 would be the desired values.

begin program.
def sorter(*args):
    return sorted(args)
end program.

SPSSINC TRANS RESULT=v1 to v5
/FORMULA sorter(a b c d e).


Jon Peck (no "h") aka Kim
Senior Software Engineer, IBM
[hidden email]
new phone: 720-342-5621




From:        Bruce Weaver <[hidden email]>
To:        [hidden email],
Date:        10/16/2012 05:26 AM
Subject:        Re: [SPSSX-L] second lowest /higest value
Sent by:        "SPSSX(r) Discussion" <[hidden email]>




Yep, that's neat.  Didn't someone on this list (maybe you) once describe
DO-REPEAT as a poor man's macro?



David Marso wrote
> An eye-opening use of DO REPEAT ;=)
> --
> data list free/ x1 to x5.
> begin data
> 33 43 43 45 34
> 21 34 45 41 24
> 54 21 34 21 52
> end data.
> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
> +  COMPUTE cpy=old.
> END REPEAT.
>
> VECTOR #X=#X1 TO #x5.
> DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
> +  COMPUTE FX=FN(X1 TO X5).
> +  COMPUTE #Found=0.
> +    LOOP #=1 TO 5.
> +      DO IF #X(#)=FX.
> +        COMPUTE #X(#)=$SYSMIS.
> +        COMPUTE #found=1.
> +      END IF.
> +  END LOOP IF #found.
> +  COMPUTE FX2=FN(#x1 TO #X5).
> END REPEAT.
> LIST.
> David Marso wrote
>> data list free/ x1 to x5.
>> begin data
>> 33 43 43 45 34
>> 21 34 45 41 24
>> 54 21 34 21 52
>> end data.
>>
>> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
>> +  COMPUTE cpy=old.
>> END REPEAT.
>> COMPUTE #XMIN=MIN(x1 to x5).
>> COMPUTE #XMAX=MAX(x1 to x5).
>> VECTOR #X=#X1 TO #x5.
>> DO REPEAT FX=#XMIN #XMAX .
>> +  COMPUTE #Found=0.
>> +    LOOP #=1 TO 5.
>> +      DO IF #X(#)=FX.
>> +        COMPUTE #X(#)=$SYSMIS.
>> +        COMPUTE #Found=1.
>> +      END IF.
>> +  END LOOP IF #found.
>> END REPEAT.
>> COMPUTE MIN2=MIN(#x1 TO #X5).
>> COMPUTE MAX2=MAX(#x1 TO #X5).
>> LIST.
>> David Marso wrote
>>> You state you have 5 variables but display only 4.
>>> Your description is not consistent with the data you present.
>>> See MIN and MAX functions then look at DO REPEAT .
>>> ---
>>> ANDRES ALBERTO BURGA LEON wrote
>>>> Hello to everybody:
>>>>
>>>> I have a data list with five variables (var1 to var5)
>>>>
>>>> I need to create a new variable that contains the second lowest and
>>>> other
>>>> thas contains the second higest:
>>>>
>>>> var1 var2 var3 var4 var5
>>>> 23 45 21 45
>>>> 34 56 78 34
>>>> 98 23 36 27
>>>>
>>>> for the fist case, var6 would be 21, for the second 34, and for the
>>>> third
>>>> case 23.
>>>>
>>>> var7 would be 45 for the fisrt case, 78 for the second and 98 for the
>>>> first.
>>>>
>>>> How coulld I implement this with SPSS syntax?
>>>>
>>>> Kindly
>>>>
>>>> Andrés





-----
--
Bruce Weaver
[hidden email]
http://sites.google.com/a/lakeheadu.ca/bweaver/

"When all else fails, RTFM."

NOTE: My Hotmail account is not monitored regularly.
To send me an e-mail, please use the address shown above.

--
View this message in context:
http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-value-tp5715660p5715666.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
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


Reply | Threaded
Open this post in threaded view
|

Re: second lowest /higest value

David Marso
Administrator
In reply to this post by Maguin, Eugene
"Oooooooooooooooh.."
I guess you like that one eh Gene?
---
I would say the documentation is incomplete in that it mentions
"DO REPEAT uses a stand-in variable to represent a replacement list of variables or values."
Unless one considers function names as either variables or values...
I don't recall when I discovered this cute feature but it was probably by accident or pushing the edge on the DO REPEAT as a 'baby macro' analogy.  
I just tried it and surprise surprise (it worked).  I does make sense in terms of thinking of DO REPEAT as being just as dumb as macro wrt simple string substitution.
OTOH: If I were using this shortcut in any production code I would document the hell out of the final code so the end user/client isn't digging around in a manual trying to make sense of the intention.
Maguin, Eugene wrote
Oooooooooooooooh! This is one of the things that irritates me about the spss documentation: it is incomplete. As I read the documentation, what you did is incorrect and should have generated an error. I don't know how you knew that it wouldn't but I'm glad you did because I learned something. I'll bet there is a lot more of this sort of thing hiding in the code.

Gene Maguin



-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of David Marso
Sent: Tuesday, October 16, 2012 9:11 AM
To: [hidden email]
Subject: Re: second lowest /higest value

KEY: DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/*FN=MIN MAX *.
As Bruce noted my passing reference to DO REPEAT as "poor man's macro".
I am passing the function names to DO REPEAT and hence avoiding the
> COMPUTE #XMIN=MIN(x1 to x5).
> COMPUTE #XMAX=MAX(x1 to x5).
.....
> COMPUTE MIN2=MIN(#x1 TO #X5).
> COMPUTE MAX2=MAX(#x1 TO #X5).


Maguin, Eugene wrote
> David,
>
> I'm not familiar with the 'FN' function in these two lines (and I
> can't find an entry for it in the csr). Please explain.
> +  COMPUTE FX=FN(X1 TO X5).
> +  COMPUTE FX2=FN(#x1 TO #X5).
>
> Thanks, Gene Maguin
>
>
> -----Original Message-----
> From: SPSSX(r) Discussion [mailto:

> SPSSX-L@.UGA

> ] On Behalf Of David Marso
> Sent: Tuesday, October 16, 2012 12:59 AM
> To:

> SPSSX-L@.UGA

> Subject: Re: second lowest /higest value
>
> An eye-opening use of DO REPEAT ;=)
> --
> data list free/ x1 to x5.
> begin data
> 33 43 43 45 34
> 21 34 45 41 24
> 54 21 34 21 52
> end data.
> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
> +  COMPUTE cpy=old.
> END REPEAT.
>
> VECTOR #X=#X1 TO #x5.
> DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
> +  COMPUTE FX=FN(X1 TO X5).
> +  COMPUTE #Found=0.
> +    LOOP #=1 TO 5.
> +      DO IF #X(#)=FX.
> +        COMPUTE #X(#)=$SYSMIS.
> +        COMPUTE #found=1.
> +      END IF.
> +  END LOOP IF #found.
> +  COMPUTE FX2=FN(#x1 TO #X5).
> END REPEAT.
> LIST.
>
>
> David Marso wrote
>> data list free/ x1 to x5.
>> begin data
>> 33 43 43 45 34
>> 21 34 45 41 24
>> 54 21 34 21 52
>> end data.
>>
>> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
>> +  COMPUTE cpy=old.
>> END REPEAT.
>> COMPUTE #XMIN=MIN(x1 to x5).
>> COMPUTE #XMAX=MAX(x1 to x5).
>> VECTOR #X=#X1 TO #x5.
>> DO REPEAT FX=#XMIN #XMAX .
>> +  COMPUTE #Found=0.
>> +    LOOP #=1 TO 5.
>> +      DO IF #X(#)=FX.
>> +        COMPUTE #X(#)=$SYSMIS.
>> +        COMPUTE #Found=1.
>> +      END IF.
>> +  END LOOP IF #found.
>> END REPEAT.
>> COMPUTE MIN2=MIN(#x1 TO #X5).
>> COMPUTE MAX2=MAX(#x1 TO #X5).
>> LIST.
>> David Marso wrote
>>> You state you have 5 variables but display only 4.
>>> Your description is not consistent with the data you present.
>>> See MIN and MAX functions then look at DO REPEAT .
>>> ---
>>> ANDRES ALBERTO BURGA LEON wrote
>>>> Hello to everybody:
>>>>
>>>> I have a data list with five variables (var1 to var5)
>>>>
>>>> I need to create a new variable that contains the second lowest and
>>>> other thas contains the second higest:
>>>>
>>>> var1 var2 var3 var4 var5
>>>> 23 45 21 45
>>>> 34 56 78 34
>>>> 98 23 36 27
>>>>
>>>> for the fist case, var6 would be 21, for the second 34, and for the
>>>> third case 23.
>>>>
>>>> var7 would be 45 for the fisrt case, 78 for the second and 98 for
>>>> the first.
>>>>
>>>> How coulld I implement this with SPSS syntax?
>>>>
>>>> Kindly
>>>>
>>>> Andrés
>
>
>
>
>
> -----
> Please reply to the list and not to my personal email.
> Those desiring my consulting or training services please feel free to
> email me.
> --
> View this message in context:
> http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-val
> ue-tp5715660p5715663.html Sent from the SPSSX Discussion mailing list
> archive at Nabble.com.
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
--
View this message in context: http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-value-tp5715660p5715669.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
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

=====================
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
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: second lowest /highest value

Maguin, Eugene
In reply to this post by Maguin, Eugene

Jon,

 

This is why I say that.

 

DO REPEAT stand-in var={varlist | ALL } [/stand-in var=...]

{value list}

DO REPEAT uses a stand-in variable to represent a replacement list of variables or values.

 

The example you cite, the example in the documentation, illustrates what the specification shows and what the first sentence states.

 

Based on what David used, I would write the above statements as follows.

 

DO REPEAT stand-in var={varlist | ALL } [/stand-in var=...]

{value list} {function list}

DO REPEAT uses a stand-in variable to represent a replacement list of variables or values or functions.

 

Kirill’s posting illustrates the same point: functions can call functions. I didn’t look, but I’d bet there is no statement to that effect.

 

I am not criticizing the designers. They were astute in designing and writing the code so that functions as well as variables and values could be processed. I’m glad they did; as a user, I would like to have been told that.

 

Gene Maguin

 

 

From: Jon K Peck [mailto:[hidden email]]
Sent: Tuesday, October 16, 2012 9:45 AM
To: Maguin, Eugene
Cc: [hidden email]
Subject: Re: [SPSSX-L] second lowest /highest value

 

I don't see anything in the doc for DO REPEAT that suggests that this construct is illegal.  In fact, the first example in the CSR
DO REPEAT var=var1 to var5
/value=1 to 5.
COMPUTE var=value.
END REPEAT
is much like this.

While the CSR attempts to be complete about the facts, it can't cover all the possible implications or applications of the commands.

Jon Peck (no "h") aka Kim
Senior Software Engineer, IBM
[hidden email]
new phone: 720-342-5621




From:        "Maguin, Eugene" <[hidden email]>
To:        [hidden email],
Date:        10/16/2012 07:25 AM
Subject:        Re: [SPSSX-L] second lowest /higest value
Sent by:        "SPSSX(r) Discussion" <[hidden email]>





Oooooooooooooooh! This is one of the things that irritates me about the spss documentation: it is incomplete. As I read the documentation, what you did is incorrect and should have generated an error. I don't know how you knew that it wouldn't but I'm glad you did because I learned something. I'll bet there is a lot more of this sort of thing hiding in the code.

Gene Maguin



-----Original Message-----
From: SPSSX(r) Discussion [
[hidden email]] On Behalf Of David Marso
Sent: Tuesday, October 16, 2012 9:11 AM
To: [hidden email]
Subject: Re: second lowest /higest value

KEY: DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/*FN=MIN MAX *.
As Bruce noted my passing reference to DO REPEAT as "poor man's macro".
I am passing the function names to DO REPEAT and hence avoiding the
> COMPUTE #XMIN=MIN(x1 to x5).
> COMPUTE #XMAX=MAX(x1 to x5).
.....
> COMPUTE MIN2=MIN(#x1 TO #X5).
> COMPUTE MAX2=MAX(#x1 TO #X5).


Maguin, Eugene wrote
> David,
>
> I'm not familiar with the 'FN' function in these two lines (and I
> can't find an entry for it in the csr). Please explain.
> +  COMPUTE FX=FN(X1 TO X5).
> +  COMPUTE FX2=FN(#x1 TO #X5).
>
> Thanks, Gene Maguin
>
>
> -----Original Message-----
> From: SPSSX(r) Discussion [mailto:

> [hidden email]

> ] On Behalf Of David Marso
> Sent: Tuesday, October 16, 2012 12:59 AM
> To:

> [hidden email]

> Subject: Re: second lowest /higest value
>
> An eye-opening use of DO REPEAT ;=)
> --
> data list free/ x1 to x5.
> begin data
> 33 43 43 45 34
> 21 34 45 41 24
> 54 21 34 21 52
> end data.
> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
> +  COMPUTE cpy=old.
> END REPEAT.
>
> VECTOR #X=#X1 TO #x5.
> DO REPEAT FX=#XMIN #XMAX /FX2=Min2 Max2/FN=MIN MAX .
> +  COMPUTE FX=FN(X1 TO X5).
> +  COMPUTE #Found=0.
> +    LOOP #=1 TO 5.
> +      DO IF #X(#)=FX.
> +        COMPUTE #X(#)=$SYSMIS.
> +        COMPUTE #found=1.
> +      END IF.
> +  END LOOP IF #found.
> +  COMPUTE FX2=FN(#x1 TO #X5).
> END REPEAT.
> LIST.
>
>
> David Marso wrote
>> data list free/ x1 to x5.
>> begin data
>> 33 43 43 45 34
>> 21 34 45 41 24
>> 54 21 34 21 52
>> end data.
>>
>> DO REPEAT OLD=x1 to x5 / cpy=#x1 to #x5.
>> +  COMPUTE cpy=old.
>> END REPEAT.
>> COMPUTE #XMIN=MIN(x1 to x5).
>> COMPUTE #XMAX=MAX(x1 to x5).
>> VECTOR #X=#X1 TO #x5.
>> DO REPEAT FX=#XMIN #XMAX .
>> +  COMPUTE #Found=0.
>> +    LOOP #=1 TO 5.
>> +      DO IF #X(#)=FX.
>> +        COMPUTE #X(#)=$SYSMIS.
>> +        COMPUTE #Found=1.
>> +      END IF.
>> +  END LOOP IF #found.
>> END REPEAT.
>> COMPUTE MIN2=MIN(#x1 TO #X5).
>> COMPUTE MAX2=MAX(#x1 TO #X5).
>> LIST.
>> David Marso wrote
>>> You state you have 5 variables but display only 4.
>>> Your description is not consistent with the data you present.
>>> See MIN and MAX functions then look at DO REPEAT .
>>> ---
>>> ANDRES ALBERTO BURGA LEON wrote
>>>> Hello to everybody:
>>>>
>>>> I have a data list with five variables (var1 to var5)
>>>>
>>>> I need to create a new variable that contains the second lowest and
>>>> other thas contains the second higest:
>>>>
>>>> var1 var2 var3 var4 var5
>>>> 23 45 21 45
>>>> 34 56 78 34
>>>> 98 23 36 27
>>>>
>>>> for the fist case, var6 would be 21, for the second 34, and for the
>>>> third case 23.
>>>>
>>>> var7 would be 45 for the fisrt case, 78 for the second and 98 for
>>>> the first.
>>>>
>>>> How coulld I implement this with SPSS syntax?
>>>>
>>>> Kindly
>>>>
>>>> Andrés
>
>
>
>
>
> -----
> Please reply to the list and not to my personal email.
> Those desiring my consulting or training services please feel free to
> email me.
> --
> View this message in context:
>
http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-val
> ue-tp5715660p5715663.html Sent from the SPSSX Discussion mailing list
> archive at Nabble.com.
>
> =====================
> 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
>
> =====================
> 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





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
--
View this message in context:
http://spssx-discussion.1045642.n5.nabble.com/second-lowest-higest-value-tp5715660p5715669.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
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

=====================
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

Reply | Threaded
Open this post in threaded view
|

Re: second lowest /highest value

Bruce Weaver
Administrator
I like Gene's addition of functions to the list.  This would be a nice improvement to the Fine Manual entry for DO-REPEAT.


Maguin, Eugene wrote
--- snip ---

Based on what David used, I would write the above statements as follows.

DO REPEAT stand-in var={varlist | ALL } [/stand-in var=...]
{value list} {function list}
DO REPEAT uses a stand-in variable to represent a replacement list of variables or values or functions.

Kirill's posting illustrates the same point: functions can call functions. I didn't look, but I'd bet there is no statement to that effect.

I am not criticizing the designers. They were astute in designing and writing the code so that functions as well as variables and values could be processed. I'm glad they did; as a user, I would like to have been told that.

Gene Maguin
--
Bruce Weaver
bweaver@lakeheadu.ca
http://sites.google.com/a/lakeheadu.ca/bweaver/

"When all else fails, RTFM."

PLEASE NOTE THE FOLLOWING: 
1. My Hotmail account is not monitored regularly. To send me an e-mail, please use the address shown above.
2. The SPSSX Discussion forum on Nabble is no longer linked to the SPSSX-L listserv administered by UGA (https://listserv.uga.edu/).