Rename variables syntax

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

Rename variables syntax

cristiano1974
 Dear listers,
 I'd like to rename all variables in a dataset with length more than 12 char with a prefix, like 'A_'.

I don't know how can I do with syntax.

Any kind of help will be really appreciated.

Thanks

C.
Reply | Threaded
Open this post in threaded view
|

Re: Rename variables syntax

Ruben Geert van den Berg
Dear Cristiano,
 
If I understood your question correctly, the syntax below may help.
 
Best regards,

Ruben van den Berg

Methodologist

TNS NIPO

E: [hidden email]

P: +31 20 522 5738

I: www.tns-nipo.com



cd 'c:\temp'.
 
data list free/v10_000000 v11_0000000 v12_00000000 v13_000000000.
begin data
1 2 3 4
end data.

dataset name data.
 
* OMS.
DATASET DECLARE  vars.
OMS
  /SELECT TABLES
  /IF COMMANDS=['File Information'] SUBTYPES=['Variable Information']
  /DESTINATION FORMAT=SAV NUMBERED=TableNumber_
   OUTFILE='vars' VIEWER=NO
  /TAG='vars'.
 
display variables.
 
omsend tag=['vars'].
 
dataset activate vars.
 
comp varlength=length(rtr(var1)).
 
select if varlength ge 12.
 
str syntax(a500).
comp syntax=con("rename variables ",rtr(var1),"= A_",rtr(var1),".").
exe.
 
save translate outfile='$rename_syntax.sps'
/typ tab
/keep syntax.
 
dataset close vars.
dataset activate data.
 
insert file='$rename_syntax.sps'.
 
 
 


Date: Tue, 2 Feb 2010 09:20:29 +0100
From: [hidden email]
Subject: Rename variables syntax
To: [hidden email]

 Dear listers,
 I'd like to rename all variables in a dataset with length more than 12 char with a prefix, like 'A_'.

I don't know how can I do with syntax.

Any kind of help will be really appreciated.

Thanks

C.


New Windows 7: Find the right PC for you. Learn more.
Reply | Threaded
Open this post in threaded view
|

Re: Rename variables syntax

Albert-Jan Roskam
Hi Cristiano,
 
This is an alternative, quite a succinct way to do it:
 
begin program.
import spss, spssaux
cmd = "rename variables "
for vname in spssaux.GetVariableNamesList():
  if len(vname) > 12:
    cmd += "(%s = %s)" % (vname, "A_"+ vname)
spss.Submit(cmd)
end program.

Cheers!!
Albert-Jan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the face of ambiguity, refuse the temptation to guess.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--- On Tue, 2/2/10, Ruben van den Berg <[hidden email]> wrote:

From: Ruben van den Berg <[hidden email]>
Subject: Re: [SPSSX-L] Rename variables syntax
To: [hidden email]
Date: Tuesday, February 2, 2010, 10:56 AM

Dear Cristiano,
 
If I understood your question correctly, the syntax below may help.
 
Best regards,

Ruben van den Berg

Methodologist

TNS NIPO

E: ruben_van_den_berg@...

P: +31 20 522 5738

I: www.tns-nipo.com

cd 'c:\temp'.
 
data list free/v10_000000 v11_0000000 v12_00000000 v13_000000000.
begin data
1 2 3 4
end data.

dataset name data.
 
* OMS.
DATASET DECLARE  vars.
OMS
  /SELECT TABLES
  /IF COMMANDS=['File Information'] SUBTYPES=['Variable Information']
  /DESTINATION FORMAT=SAV NUMBERED=TableNumber_
   OUTFILE='vars' VIEWER=NO
  /TAG='vars'.
 
display variables.
 
omsend tag=['vars'].
 
dataset activate vars.
 
comp varlength=length(rtr(var1)).
 
select if varlength ge 12.
 
str syntax(a500).
comp syntax=con("rename variables ",rtr(var1),"= A_",rtr(var1),".").
exe.
 
save translate outfile='$rename_syntax.sps'
/typ tab
/keep syntax.
 
dataset close vars.
dataset activate data.
 
insert file='$rename_syntax.sps'.
 
 
 


Date: Tue, 2 Feb 2010 09:20:29 +0100
From: [hidden email]
Subject: Rename variables syntax
To: [hidden email]

 Dear listers,
 I'd like to rename all variables in a dataset with length more than 12 char with a prefix, like 'A_'.

I don't know how can I do with syntax.

Any kind of help will be really appreciated.

Thanks

C.


New Windows 7: Find the right PC for you. Learn more.

Reply | Threaded
Open this post in threaded view
|

Re: Rename variables syntax

cristiano1974
Thanks all for solutions!

C.

On Tue, Feb 2, 2010 at 1:19 PM, Albert-Jan Roskam <[hidden email]> wrote:
Hi Cristiano,
 
This is an alternative, quite a succinct way to do it:
 
begin program.
import spss, spssaux
cmd = "rename variables "
for vname in spssaux.GetVariableNamesList():
  if len(vname) > 12:
    cmd += "(%s = %s)" % (vname, "A_"+ vname)
spss.Submit(cmd)
end program.

Cheers!!
Albert-Jan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the face of ambiguity, refuse the temptation to guess.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--- On Tue, 2/2/10, Ruben van den Berg <[hidden email]> wrote:

From: Ruben van den Berg <[hidden email]>
Subject: Re: [SPSSX-L] Rename variables syntaxDate: Tuesday, February 2, 2010, 10:56 AM


Dear Cristiano,
 
If I understood your question correctly, the syntax below may help.
 
Best regards,

Ruben van den Berg

Methodologist

TNS NIPO

E: ruben_van_den_berg@...

P: +31 20 522 5738

I: www.tns-nipo.com

cd 'c:\temp'.
 
data list free/v10_000000 v11_0000000 v12_00000000 v13_000000000.
begin data
1 2 3 4
end data.

dataset name data.
 
* OMS.
DATASET DECLARE  vars.
OMS
  /SELECT TABLES
  /IF COMMANDS=['File Information'] SUBTYPES=['Variable Information']
  /DESTINATION FORMAT=SAV NUMBERED=TableNumber_
   OUTFILE='vars' VIEWER=NO
  /TAG='vars'.
 
display variables.
 
omsend tag=['vars'].
 
dataset activate vars.
 
comp varlength=length(rtr(var1)).
 
select if varlength ge 12.
 
str syntax(a500).
comp syntax=con("rename variables ",rtr(var1),"= A_",rtr(var1),".").
exe.
 
save translate outfile='$rename_syntax.sps'
/typ tab
/keep syntax.
 
dataset close vars.
dataset activate data.
 
insert file='$rename_syntax.sps'.
 
 
 


Date: Tue, 2 Feb 2010 09:20:29 +0100
From: [hidden email]
Subject: Rename variables syntax
To: [hidden email]

 Dear listers,
 I'd like to rename all variables in a dataset with length more than 12 char with a prefix, like 'A_'.

I don't know how can I do with syntax.

Any kind of help will be really appreciated.

Thanks

C.


New Windows 7: Find the right PC for you. Learn more.