BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Planck
Obsidian | Level 7

Hi,

 

I have a table.

I try to remove all possible accents from this table by doing something like:

 PROC SQL;
CREATE TABLE WORK.B AS
compress(
WORK.A,
"éèêëâäàåáïîìíçôöòóûùúü,.-'"
,"eeeeaaaaaiiiicoooouuuu ");
QUIT;
RUN;

 

But it's not working. It want a select and I don't know how to do it....

 

Have you an idea?

 

Thanks

1 ACCEPTED SOLUTION

Accepted Solutions
Shmuel
Garnet | Level 18

It seems to me that you meant using TRANSLATE instead COMPRESS and

I'm not sure you that can do it by SQL as you tried to do.

 

try next code:

data b;

 set a;

      array _chr   _character_ ;

       do over _chr;

            _chr = translate(_chr , "eeeeaaaaaiiiicoooouuuu " ,  "éèêëâäàåáïîìíçôöòóûùúü,.-'" );

       end;

run;

 

View solution in original post

3 REPLIES 3
ballardw
Super User

 PROC SQL;
CREATE TABLE WORK.B AS

   select *, compress(VariableA,"éèêëâäàåáïîìíçôöòóûùúü,.-'","eeeeaaaaaiiiicoooouuuu ") AS NewVariableA

From Work.A;
QUIT;

 

Would fix one variable. SQL does not have a mechanism for 1) default selection of variables you have to include a Select statement, 2) manipulating a variable you need to NAME the result using As varaible, 3) you have to specify a data source with FROM

 

If you have a number of variables whose names shouldn't change you would be better off looking at a data step to allow array processing.

Something along these lines:

data work.b;
   set work.a;
   array c  _character_;
   do i = 1 to dim(c);
      c[i] = compress(c[i],"éèêëâäàåáïîìíçôöòóûùúü,.-'","eeeeaaaaaiiiicoooouuuu ") ;
   end;
   drop i;
run;

which will process all of the character variables in work.a

 

Shmuel
Garnet | Level 18

It seems to me that you meant using TRANSLATE instead COMPRESS and

I'm not sure you that can do it by SQL as you tried to do.

 

try next code:

data b;

 set a;

      array _chr   _character_ ;

       do over _chr;

            _chr = translate(_chr , "eeeeaaaaaiiiicoooouuuu " ,  "éèêëâäàåáïîìíçôöòóûùúü,.-'" );

       end;

run;

 

Planck
Obsidian | Level 7

Exactly what I needeed actually.

 

Thank you!

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 3141 views
  • 2 likes
  • 3 in conversation