删除最后一个逗号 SAS 之后的所有内容

Deleting everything after the last comma SAS

我有一个地址字段,其地址类似于:

1 High Street, London, Uk, L1 6YR 
Flat 2, 35 Second Street, London,Greater London, L14 8FG

我想去掉最后一个逗号后的所有内容,这样我就可以得到:

   1 High Street, London, Uk
   Flat 2, 35 Second Street, London,Greater London

我试过这样做:

DATA WANT;
SET HAVE;
ADDRESS_NEW = SCAN(ADDRESS, -1, ",");
RUN;

但这只是 returns post 代码:

L1 6YR
L14 8FG

您可以使用 PRXCHANGE 修改满足您所需条件的文本值。此示例使用正则表达式模式 s/,[^,]*$// 将找到的结束部分替换为空。

data have;
input address .;
datalines; 
1 High Street, London, Uk, L1 6YR 
Flat 2, 35 Second Street, London,Greater London, L14 8FG
Argy Bargy Lane
London, Uk
run;

data want;
  set have;
  address = prxchange("s/,[^,]*$//", 1, address);
run;

使用 B 选项查找 C。

24   data _null_;
25      input address .;
26      put / address=;
27      l = findc(address,',','b');
28      if l then address = substrn(address,1,l-1);
29      put  (_all_)(=);
30      datalines;


address=1 High Street, London, Uk, L1 6YR
address=1 High Street, London, Uk l=26

address=Flat 2, 35 Second Street, London,Greater London, L14 8FG
address=Flat 2, 35 Second Street, London,Greater London l=48

address=Argy Bargy Lane
address=Argy Bargy Lane l=0

address=London, Uk
address=London l=7