SAS特定观察格式



如果变量"TEXT"中的观测值包含8个数字,我想在SAS中创建一个新变量,该变量的值为1。问题是,TEXT是一个字符变量。有可能在SAS中进行某种格式的搜索吗?

我假设"8个数字"实际上是指8位数字。对于8个单独的数字,情况会有所不同。因此,下面的代码可能会有所帮助。COMPRESS函数中表示KEEP DIGITS的修饰符"kd"在这里起到了神奇的作用:

data indata;
length TEXT $20;
input TEXT;
datalines;
a
123
12345678
A12345678
;
run;
data outdata;
set indata;
length TEXT_DIGITS $20 _8_DIGIT_INDICATOR 3;
TEXT_DIGITS = compress(TEXT, , 'kd');
if length(TEXT_DIGITS)=8 then _8_DIGIT_INDICATOR = 1;
run;

根据需要调整逻辑-例如,如果输入值中不允许其他字符或其他字符。还有像ANYDIGIT、NOTDIGIT这样的功能可能很有用。

最新更新