Как преобразовать строку в число в SAS?

Я новичок в SAS и борюсь с преобразованиями типов. Они кажутся мне какими угодно, только не интуитивными. Мне нужно сделать это в операторах SAS PROC SQL.

Может ли кто-нибудь помочь мне найти лучший способ преобразовать поле, отформатированное, как показано ниже, в число, чтобы его можно было выполнить сложением/вычитанием и сравнить с числовым полем?

Пример формата поля: «+3820,00».

Я использовал strip(), чтобы избавиться от знака +, запятой и пробелов, а затем input(), чтобы сделать его числом, но мне не повезло.


person Brad    schedule 06.08.2015    source источник


Ответы (3)


Информация commaw.d будет иметь дело со всем этим без какой-либо зачистки и т. д. Он с радостью принимает знак + как положительный и запятую / десятичную дробь. Это работает и в SQL, но проще показать пример, как показано ниже...

data _null_;
  x=' +3,820.00';
  y=input(x,comma12.);
  put x= y=;
run;
person Joe    schedule 06.08.2015
comment
Джо, возможно, вдаваясь в подробности о том, как работают преобразования типов, может быть для того, чтобы увидеть, как спрашивающий не понимает, как они работают. - person Robert Penridge; 07.08.2015
comment
Хм. Я не уверен, что именно вы думаете здесь. Вы говорите что-то вроде описания того, как информат является шаблоном для преобразования красивой переменной в число? - person Joe; 07.08.2015
comment
Только основы, чтобы помочь кому-то новому двигаться в правильном направлении. Я бы подумал об обсуждении разницы между вводом и размещением, форматами и информацией, а также о том, где они могут найти дополнительную помощь/информацию. Хотя некоторые из них могут не отвечать на вопрос автора напрямую, будущие посетители могут извлечь из этого пользу (и мы можем получить меньше вопросов о конверсии на SO =P ). - person Robert Penridge; 07.08.2015

используйте компресс, а не полоски

поле1 = ввод (сжатие (поле, '+,'), 6.);

or

поле1 = ввод (сжатие (поле, '+,'), запятая 10.2) формат = запятая 10.2;

person Bharath    schedule 06.08.2015

Ввод — это правильный способ преобразования строк в числа, и вы можете использовать ввод в операторах выбора proc sql (см. например, числовое преобразование при извлечении sql). Есть информация, которую вы можете передать функции ввода, которая поможет вам с запятыми и знаками, чтобы вам не приходилось их удалять перед вызовом ввода. Дополнительную информацию можно найти здесь: Информация по категориям.

Если это не поможет, пожалуйста, дайте мне знать.

person Kurt Andrews    schedule 06.08.2015