1
我想在SAS中创建一个新变量,如果变量“TEXT”中的观察结果包含8个数字,则该变量的值为1。问题是,TEXT是一个字符变量。是否有可能在SAS中进行某种格式的搜索?SAS特定观察格式
我想在SAS中创建一个新变量,如果变量“TEXT”中的观察结果包含8个数字,则该变量的值为1。问题是,TEXT是一个字符变量。是否有可能在SAS中进行某种格式的搜索?SAS特定观察格式
我假设'8个数字',你实际上意味着8位数字。对于8个单独的数字,这将是不同的。 所以像下面的代码可能会有所帮助。 修饰语“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的功能可能是有用的。
真的有帮助。我的意思是数字,是的。如果我不想在数字被例如字母分隔的情况下进行观察,那么“。”或“/”,有没有简单的方法来删除这些? –
此外,在此代码中,该过程仅在一个数据集indata上完成。是否有可能让sas为大量数据集做好准备,比如说一百个数据集,都包含在一个库中? –