需要从 SAS 中的字符字段中提取数字数据

need to substring out numeric data from a character field in SAS

我有一个包含 2 个变量的数据集:一个主题 ID 号和一个结果。结果是一个字符变量。它是从 excel 电子表格中读取的。大多数结果都是数字,但有些结果后面有一个字母作为 excel 文件中的脚注。我需要去掉数字后面的字母,这样我才能将数据转换为数字以供分析。我怎样才能做到这一点?下面是一些代码,用于创建我正在谈论的结构的示例数据集。

data test;
input id result $ ;
datalines;
1 13 
2 15 
3 20 
4 25c 
5 75 
6 99c 
7 89b 
8 10a 
9 100 
10 67
;
run;

查看 compress and input 函数。

num = input(compress(result, , "dk"), best.); 

input 将字符转换为数字,使用您提供的信息(best. 此处)解释数据。

compress 可用于从字符串中去除某些字符,这里它与 d 修饰符一起使用以请求排除所有数字,而 k 修饰符请求保留而不是删除所选字符。

您可能需要稍微调整 compress 参数以处理更复杂的情况,例如小数点。