SAS特定的观察格式

时间:2013-08-20 09:58:13

标签: variables format sas

我想在SAS中创建一个新变量,如果变量“TEXT”中的观察值包含8个数字,则取值为1。问题是,TEXT是一个字符变量。是否可以在SAS中进行某种格式搜索?

1 个答案:

答案 0 :(得分:4)

我假设'8个数字'实际上意味着8个数字。对于8个单独的数字,这将是不同的。 所以像下面的代码可能会有所帮助。 修饰符'kd'意味着COMPRESS函数中的KEEP DIGITS在这里具有魔力:

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这样的函数可能很有用。