Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sas 如何打印非数值_Sas - Fatal编程技术网

Sas 如何打印非数值

Sas 如何打印非数值,sas,Sas,我正在使用一项调查的数据,该调查允许研究参与者输入数字回答,而不是为他们提供下拉菜单,让他们选择数字回答。因此,我的回答包含字符(例如“9-12”或“7”)。我想确定其中包含特征的观察结果 提前谢谢 我脑子里的代码让我陷入WHERE语句 PROC PRINT DATA=library.survey; VAR记录id; 在哪里。。。。。。 运行 我可以写一些东西,告诉SAS打印var1不等于数值的记录ID吗?一种方法是使用prxmatch的正则表达式 proc print data=survey;

我正在使用一项调查的数据,该调查允许研究参与者输入数字回答,而不是为他们提供下拉菜单,让他们选择数字回答。因此,我的回答包含字符(例如“9-12”或“7”)。我想确定其中包含特征的观察结果

提前谢谢

我脑子里的代码让我陷入WHERE语句

PROC PRINT DATA=library.survey; VAR记录id; 在哪里。。。。。。 运行


我可以写一些东西,告诉SAS打印var1不等于数值的记录ID吗?

一种方法是使用
prxmatch
的正则表达式

proc print data=survey;
where prxmatch("/\D/",compress(var1));
run;

这将匹配任何非数字字符。我们使用compress-around
var1
删除任何空白。

只需打印INPUT()无法转换为数字的非缺失值。如果它们可能卡在前导空格中,则使用LEFT()函数删除它们。还要注意太长而不是有效数字的值

where not missing(var1) 
  and (lengthn(left(var1)) <= 32 and missing(input(left(var1),?32.)))
未缺失的位置(var1)

和(长度n(左(变1))这只适用于整数值。也不会检测太长而无法用8字节浮点数表示的数字字符串。@Tom我认为将负数和小数识别为潜在问题是一个好处。我不知道调查的受众是谁,但32位数字似乎不太可能。