如何测试字符串字符是否是数字?

时间:2018-09-13 11:12:27

标签: spss

如何测试字符串变量的某个字符在SPSS中是否为数字(然后根据结果应用一些操作)?

因此,例如,我有一个反映街道编号的变量。一些街道号码在末尾有其他字符,例如“ 12b”。现在让我们进一步假设我将最后一个字符(可以是数字或其他字母)提取到字符串变量中。之后,我要检查此字符是数字还是字母。该怎么办?

2 个答案:

答案 0 :(得分:1)

我设法通过MAX函数做到了这一点,其中“ mychar”是要检查的字符变量:

COMPUTE digitcheck = (MAX(mychar,"9")="9").

如果“ mychar”的内容是数字[0-9],则MAX函数的结果将为“ 9”,否则MAX函数将返回字母,并且相等性测试失败

这样,您还可以检查整个字符串变量是否包含字母。但是,它看起来很丑陋,因为您必须比较字符串变量的每个字符。

compute justdigits = (MAX((CHAR.SUBSTR(mystr,1,1), CHAR.SUBSTR(mystr,2,1), CHAR.SUBSTR(mystr,3,1), ..., CHAR.SUBSTR(mystr,n,1),"9")="9").

答案 1 :(得分:1)

如果您尝试将字母转换为数字,则它将成为缺少的值。因此,要测试字符是否为数字,可以执行以下操作:

if not missing(number(YourCharacter,f1)) .....

同一测试可以确定字符串中是否只有数字:

compute OnlyNumber=(not missing(number(YourString,f10))).

注意:对字符串使用number命令将产生警告消息,您当然可以忽略。