删除最后一个逗号 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
我有一个地址字段,其地址类似于:
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