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

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

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
  • 3176 views
  • 2 likes
  • 3 in conversation