如何在SAS中检测和修改小写字母

时间:2018-09-27 18:41:16

标签: sas

我有一个名为ID的变量,如下所示。

ID
ABC.L
ABCa.L
BDE.L
BDEna.L
BNE.F
HDF.A

此变量在.之前的最后一个字符或最后两个字符可能是小写字母。我想检查是否是这种情况,如果是这种情况,我将创建一个新变量并删除小写字符。如果没有小写字母,则新变量将与原始变量相同。有人可以建议我如何实现这一目标吗?

ID      New_ID
ABC.L   ABC.L
ABCa.L  ABC.L
BDE.L   BDE.L
BDEna.L BDE.L
BNE.F   BNE.F
HDF.A   HDF.A

2 个答案:

答案 0 :(得分:1)

COMPRESS函数可将K =保留U =大写字母,包括。=句号

254  data have;
255     input ID $;
256     newid = compress(id,'.','KU');
257     put 'NOTE: ' (_all_)(=);
258     cards;

NOTE: ID=ABC.L newid=ABC.L
NOTE: ID=ABCa.L newid=ABC.L
NOTE: ID=BDE.L newid=BDE.L
NOTE: ID=BDEna.L newid=BDE.L
NOTE: ID=BNE.F newid=BNE.F
NOTE: ID=HDF.A newid=HDF.A

答案 1 :(得分:1)

使用prxchange函数的另一种方法。这里[a-z]表示小写字母// //表示不替换。 -1表示它存在的次数。

 data want;
 set have;
 new_id1=prxchange('s/[a-z]//',-1, id);
 run;