如何测试字符串变量的某个字符在SPSS中是否为数字(然后根据结果应用一些操作)?
因此,例如,我有一个反映街道编号的变量。一些街道号码在末尾有其他字符,例如“ 12b”。现在让我们进一步假设我将最后一个字符(可以是数字或其他字母)提取到字符串变量中。之后,我要检查此字符是数字还是字母。该怎么办?
答案 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
命令将产生警告消息,您当然可以忽略。