Hi Thanks for taking your time and any hint! My problem (SPSS 26): I got a thousands of cases with a string variable like ‘19.343.563.10’ (which stands for a code), most of theme like that, some with an additional letter at the end. My aim: A new variable, which contains a sequential number, for all cases with the identical string the same. I guess, that has to be a syntax (COMPUTE…, or RECODE in a new variable?) using some IF’s and runs through all the cases, but sorry, my knowledge of SPSS isn’t good enough. Regards Tom |
Thomas,
It's always a good idea to include what you would like the final result to be. Can you post what you'd like the result for your example to look like? When a code has a letter at the end, do you want the letter removed so the result can be numerical? An example
of the before and after in cases with letters would also be helpful.
Thanks.
Brian
From: SPSSX(r) Discussion <[hidden email]> on behalf of Balmer, Thomas <[hidden email]>
Sent: Thursday, October 24, 2019 11:11 AM To: [hidden email] <[hidden email]> Subject: New variable testing strings in old variable Hi
Thanks for taking your time and any hint!
My problem (SPSS 26):
I got a thousands of cases with a string variable like ‘19.343.563.10’ (which stands for a code), most of theme like that, some with an additional letter at the end.
My aim: A new variable, which contains a sequential number, for all cases with the identical string the same.
I guess, that has to be a syntax (COMPUTE…, or RECODE in a new variable?) using some IF’s and runs through all the cases, but sorry, my knowledge of SPSS isn’t good enough.
Regards Tom |
In reply to this post by Tom
As I read it, what you want is what you would get with a simple
RANK var= XXX /into=YYY /ties= CONDENSE.
- if RANK could be used with String variables.
(If I had SPSS here, I would test it because it is so simple, even the
the on-line manual doesn't hint that it might work.)
To get the same thing if RANK doesn't have this as a hidden feature,
you might sort and set up a counter -- something like,
SORT by the var;
DO IF the first case, set IDSEQ to 1 ;
ELSE
COMPUTE IDSEQ= lag(IDSEQ). ;
IF (XXX ne lag(XXX) IDSEQ= IDSEQ+1. ;
Is that what you need?
--
Rich Ulrich
From: SPSSX(r) Discussion <[hidden email]> on behalf of Balmer, Thomas <[hidden email]>
Sent: Thursday, October 24, 2019 11:11 AM To: [hidden email] <[hidden email]> Subject: New variable testing strings in old variable Hi
Thanks for taking your time and any hint!
My problem (SPSS 26):
I got a thousands of cases with a string variable like ‘19.343.563.10’ (which stands for a code), most of theme like that, some with an additional letter at the end.
My aim: A new variable, which contains a sequential number, for all cases with the identical string the same.
I guess, that has to be a syntax (COMPUTE…, or RECODE in a new variable?) using some IF’s and runs through all the cases, but sorry, my knowledge of SPSS isn’t good enough.
Regards Tom |
In reply to this post by Tom
Hi, Tom, you can use AUTORECODE for this. Mario Giesel Munich, Germany
Am Donnerstag, 24. Oktober 2019, 17:11:51 MESZ hat Balmer, Thomas <[hidden email]> Folgendes geschrieben:
Hi
Thanks for taking your time and any hint!
My problem (SPSS 26):
I got a thousands of cases with a string variable like ‘19.343.563.10’ (which stands for a code), most of theme like that, some with an additional letter at the end.
My aim: A new variable, which contains a sequential number, for all cases with the identical string the same.
I guess, that has to be a syntax (COMPUTE…, or RECODE in a new variable?) using some IF’s and runs through all the cases, but sorry, my knowledge of SPSS isn’t good enough.
Regards Tom |
Administrator
|
RANK (suggested by Rich) was a good idea, but unfortunately, RANK does not
work with string variables (as I discovered when I tried it). Mario's AUTORECODE looks like the most efficient approach. DATA LIST LIST / stringvar (A15). BEGIN DATA "19.343.563.09" "19.343.563.10" "19.343.563.10" "19.343.563.11" "19.343.563.10" "19.343.563.10" "19.343.563.11" "19.343.563.12" "19.343.563.10" "19.343.563.12" "19.343.563.12" "19.343.564.10" END DATA. RANK VARIABLES=stringvar (A) /RANK /PRINT=YES /TIES=CONDENSE. * NOTE: This RANK command generates the following warning: * Text: stringvar Command: RANK * A string variable was used in a variable list where only numeric variables are allowed. * Execution of this command stops. * No analysis is performed because of an invalid input variable list. * Compute a variable to store the original order of the cases in case it is needed later. COMPUTE case = $casenum. FORMATS case(F5.0). VARIABLE LABELS case "Original order in file". DESCRIPTIVES case. * Sort by the string variable, then generate the SeqNo variable. SORT CASES BY stringvar. * Use a DM trick to compute new variable SeqNo. COMPUTE SeqNo = SUM(LAG(SeqNo),stringvar NE LAG(stringvar)). FORMATS SeqNo (F5.0). LIST. SORT CASES by case. /* Restore original order if desired. LIST. * Now using AUTORECODE, as suggested by Mario. AUTORECODE VARIABLES=stringvar /INTO SeqNo2. LIST. * AUTORECODE looks like the winner. [hidden email] wrote > Hi, Tom, > you can use AUTORECODE for this. > Mario GieselMunich, Germany > > Am Donnerstag, 24. Oktober 2019, 17:11:51 MESZ hat Balmer, Thomas < > Thomas.Balmer@ > > Folgendes geschrieben: > > Hi > > Thanks for taking your time and any hint! > > My problem (SPSS 26): > > I got a thousands of cases with a string variable like ‘19.343.563.10’ > (which stands for a code), most of theme like that, some with an > additional letter at the end. > > My aim: A new variable, which contains a sequential number, for all cases > with the identical string the same. > > I guess, that has to be a syntax (COMPUTE…, or RECODE in a new variable?) > using some IF’s and runs through all the cases, but sorry, my knowledge of > SPSS isn’t good enough. > > Regards > > Tom ----- -- 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. -- Sent from: http://spssx-discussion.1045642.n5.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
--
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/). |
In reply to this post by spss.giesel@yahoo.de
Hi Mario That works perfect, thank you. Tom Von: Mario Giesel <[hidden email]>
Hi, Tom, you can use AUTORECODE for this. Mario Giesel Munich, Germany Am Donnerstag, 24. Oktober 2019, 17:11:51 MESZ hat Balmer, Thomas <[hidden email]> Folgendes geschrieben:
Hi
Thanks for taking your time and any hint! My problem (SPSS 26): I got a thousands of cases with a string variable like ‘19.343.563.10’ (which stands for a code), most of theme like that, some with
an additional letter at the end. My aim: A new variable, which contains a sequential number, for all cases with the identical string the same. I guess, that has to be a syntax (COMPUTE…, or RECODE in a new variable?) using some IF’s and runs through all the cases, but sorry,
my knowledge of SPSS isn’t good enough. Regards Tom ===================== 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 |
Free forum by Nabble | Edit this page |