I've a data like below. Here I need to remove only the colon (:) in the variable 'userid' if it is a first character.
userid |
:sassrv |
:datapo@saspw |
74064:datapo@saspw |
I need the data as below.
userid |
sassrv |
datapo@saspw |
74064:datapo@saspw |
I tried with compress function to achieve this, but could not succeed. Please advise,
data have;
input userid $40.;
cards;
:sassrv
:datapo@saspw
74064:datapo@saspw
;
run;
data want;
set have;
new=prxchange('s/^://',1,userid);
run;
Why didn't it work with compress?
You need to use it in conjunction with if, substr and cats.
Thanks for your response.
May I request to give a code snippet as I was doing something wrong with these function.
data have;
input userid $40.;
cards;
:sassrv
:datapo@saspw
74064:datapo@saspw
;
run;
data want;
set have;
new=prxchange('s/^://',1,userid);
run;
data log_analysis;
infile '/usr/sas/sas_config/Lev1/SASApp/Logs/SASApp_STP_2015-08-19_tmp1_19142.log' truncover;
input var : $ 3000.;
var1 = _infile_;
if var1 = :'2015';
Date_With_TimeStamp = scan(var1,1," ");
Status = scan(var1,2," ");
Processid = scan(var1,3," ");
if substr(scan(var1,4," "),1,1)=':' then userid =substr(scan(var1,4," "),2) ;
else userid = scan(var1,4," ");
Details = scan(var1,-1,'-');
drop var var1;
run;
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.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.