将 SAS 字符变量更改为 SAS 数值变量?

  • 本文关键字:SAS 变量 字符变量 sas
  • 更新时间 :
  • 英文 :


我创建了以下 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%确定出了什么问题。

如何修复解决方案?

如果你有一个字符变量,你的代码就可以工作了。但您没有,您的示例数据中有一个数值变量。因此,要么您的虚假数据不正确,要么您没有您认为的问题。

下面是一个示例,您可以运行该示例来查看此内容。

*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;

试试这个:

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

最新更新