Sas 删除最后一个逗号后的所有内容
我有一个地址字段,其地址类似于:Sas 删除最后一个逗号后的所有内容,sas,substr,Sas,Substr,我有一个地址字段,其地址类似于: 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; AD
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;
但这只是返回邮政编码:
L1 6YR
L14 8FG
您可以使用
PRXCHANGE
修改符合所需条件的文本值。此示例使用regex模式s/,[^,]*$/
将找到的结束部分替换为零
data have;
input address $80.;
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选项的FindC
24 data _null_;
25 input address $80.;
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
还请分享您尝试过的任何代码,如果您遇到任何错误,请说明它们是什么。@Amir我已经添加了我认为应该尝试的内容。我不知道还有什么可以尝试的,所以我在这里发布了。