Как проверить, является ли строковый символ цифрой? - PullRequest
0 голосов
/ 13 сентября 2018

Как проверить, является ли определенный символ строковой переменной цифрой в SPSS (а затем применить некоторые операции, в зависимости от результата)?

Итак, скажем, у меня есть переменная, которая отражает номер улицы. Некоторые номера улиц имеют дополнительный символ в конце, например "12b". Теперь давайте предположим, что я извлек последний символ (это может быть цифра или дополнительная буква) в строковую переменную. После этого я хотел бы проверить, является ли этот символ цифрой или буквой. Как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Если вы попытаетесь превратить букву в число, оно станет пропущенным значением. Поэтому, чтобы проверить, является ли символ цифрой, вы можете сделать это:

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

Тот же тест может определить, содержит ли строка только число:

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

Примечание: использование команды number для строк приведет к появлению предупреждающих сообщений, которые вы, конечно, можете игнорировать.

0 голосов
/ 13 сентября 2018

Мне удалось сделать это с помощью функции 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").
...