我正在检查数据质量并试图查看正确填充了多少行。该字段应包含一个字符串,其中一个字符后跟九个数字,并且类型为“字符”长度为 10。
前任。
我曾尝试使用 PRXMATCH 函数,但我不确定我是否使用了正确的语法。我也试过使用 PROC SQL 和“Where not like "[AZ][0-9][0-9]”等等。我的感觉是这应该不难执行,有人有解决方案吗?
此致
您可以构建一个 REGEX 来进行该测试。或者只是使用普通 SAS 函数构建测试。
data want ;
set have ;
flag1 = prxmatch('/^[A-Z][0-9]{9}$/',trim(name));
test1 = 'A' <= name <= 'Z' ;
test2 = not notdigit(trim(substr(name,2))) ;
test3 = length(name)=10;
flag2 = test1 and test2 and test3 ;
run;
结果:
Obs name flag1 test1 test2 test3 flag2
1 A123456789590 0 1 1 0 0
2 B123531490ABC 0 1 0 0 0
3 C3198610 0 1 1 0 0
4 A123456789 1 1 1 1 1
5 B123531490 1 1 1 1 1
6 C319861045 1 1 1 1 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句