Изменение символьной переменной SAS в числовую переменную SAS? - PullRequest
0 голосов
/ 11 сентября 2018

Я создал следующую таблицу SAS:

DATA test;
INPUT name$ Group_Number;
CARDS;
Joseph 1
Stephanie 2
Linda 3
James 1
Jane 2; 
run;

Я хотел бы изменить номер группы из типа символов в числовой тип.

Вот моя попытка:

data test2;
set test;
Group_Number1 = input(Group_Number, best5.);
run;

Проблема в том, что при выполнении:

proc contents data = test2; 
run;

В выходной таблице показано, что номер группы по-прежнему относится к типу символов.Я думаю, что проблема может быть в том, что у меня есть "best5".в моем входном заявлении.Однако я не на 100% уверен, что не так.

Как я могу исправить решение?

Ответы [ 2 ]

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

попробуйте это:

data test2;
set test;
Group_Number1 = input(put(Group_Number,best5.),best5.);
run;
0 голосов
/ 11 сентября 2018

Если , у вас есть символьная переменная, ваш код будет работать.Но у вас нет, у вас есть числовая переменная в ваших данных образца.Так что либо ваши фальшивые данные неверны, либо у вас нет проблемы, о которой вы думаете.

Вот пример, который вы можете запустить, чтобы увидеть это.

*read group_number as numeric;
DATA test_num;
INPUT name$ Group_Number;
CARDS;
Joseph 1
Stephanie 2
Linda 3
James 1
Jane 2
; 
run;

Title 'Group_Number is Numeric!';
proc contents data=test;
run;

*read group_number as character;
DATA test_char;
INPUT name$ Group_Number $;
CARDS;
Joseph 1
Stephanie 2
Linda 3
James 1
Jane 2
; 
run;

data test_converted;
set test_char;
    group_number_num = input(group_number, 8.);
run;

Title 'Group_Number is Character, Group_Number1 is Numeric';
proc contents data=test_converted;
run;
...