2017-01-27 9 views
2

Я хочу найти переменную, содержащую буквенно-цифровые значения, такие как 123asd или числовое значение 123 до 9, любую комбинацию от 1 до 9. Если есть, то создайте новый столбец с текстом «найден».найти строку, содержащую буквенно-цифровое значение в sas

код:

data one; 
input Val $; 

datalines; 
abc.400 
300.bef 
3456321 
abcdefg 
123.234 
; 

proc print; 
run; 

выход должен быть

value tag 
abc.400 found 
300.bef found 
3456321 found 
abcdefg nofound 
123.234 found 

ответ

1

Вы можете использовать compress() и kd (держать цифры) третий аргумент, а затем missing(), чтобы увидеть, если что-нибудь вернуться. Я помещаю его в один лайнер с ifc, который является excel-style if (возвращает 2-й аргумент, если true, 3-й аргумент, если false), возвращает символ).

tag = ifc(missing(compress(value,,'kd')),'nofound','found') 
3

Функция Anydigit.

flag=ifc(anydigit(Val)>0,'Found','NoFound'); 
+0

его ошибка, вызванная функцией ifc, неизвестна или недоступна. –

+0

также хотят показать, не найдены, если их размер меньше 7 символов. пример: Val tag 21312 Не найдено –