BookmarkSubscribeRSS Feed
timmy555
Calcite | Level 5

I have a dataset in which the social security number names the variable soc is in the format 55555555. But I need it to be the usually for

 

 

5 REPLIES 5
SASKiwi
PROC Star

I suspect your variable SOC is character. It needs to be a number to apply the SSN format:

data want;
  set have (obs= 10);
  socialsecurity=input(soc, best12.);
  format socialsecurity ssn11.;
  put socialsecurity = ;
run;
timmy555
Calcite | Level 5

is there another way to apply the dashes through a function procedure?

timmy555
Calcite | Level 5

I figured it our thankyou needs the input and put function. 

Jagadishkatam
Amethyst | Level 16

You can also try the perl regular expression incase you havent tried the code i posted.

Thanks,
Jag
Jagadishkatam
Amethyst | Level 16

Please try the below untested code

 

data have;
x='555555555';
y=prxchange('s/(\d{3,3})(\d{2,2})(\d{4,4})/$1-$2-$3/',-1,x);
run;
Thanks,
Jag