подстрока sas до первого пробела - PullRequest
0 голосов
/ 02 октября 2018

Я анализирую данные.Мне нужно извлечь все из этих строк перед первым пробелом.Как я могу извлечь подстроку всего до первого пробела.Я использую SAS и использовал PRXMATCH, но не знаком с этим.Спасибо!

0518Audible adbl.co/bill NJ              01
06257-ELEVEN CHICAGO IL                  Purchase $33.30 Cash Back $10.00
0625#03345 JEWEL CHICAGO IL                         Purchase $58.58 Cash Back $20.00                                             00

Итак, в моем выводе мне нужно:

0518Audible
06257-ELEVEN
0625#03345

Затем мне нужно извлечь только первые числа, чтобы я получил:

0518
06257
0625

Любойпомощь очень ценится.Большое спасибо

Не работает:

TXN_DESCRIPTION_2=prxmatch('/^\d+/', TXN_DESCRIPTION_1);

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

SAS имеет несколько простых методов манипуляции со строками, которые также могут быть использованы при желании:

data have;
length str $500.;
str="0518Audible adbl.co/bill NJ       01";output;
str="06257-ELEVEN CHICAGO IL           Purchase $33.30 Cash Back $10.00";output;
str="0625#03345 JEWEL CHICAGO IL       Purchase $58.58 Cash Back $20.00";output;
run;

data want;
   set have;
   str1=scan(str,1," ");
   str2=substr(str,1,notdigit(str)-1);
run;
0 голосов
/ 03 октября 2018

Используйте prxchange.

data have;
length string $500.;
string="0518Audible adbl.co/bill NJ              01";output;
string="06257-ELEVEN CHICAGO IL                  Purchase $33.30 Cash Back $10.00";output;;
string="0625#03345 JEWEL CHICAGO IL                         Purchase $58.58 Cash Back $20.00                                             00";output;
run;

data want;
   set have;
   string1=prxchange('s/(^\S+).*/$1/',-1,string);
   string2=prxchange('s/(^\d+).*/$1/',-1,string);
run;
...