我想根据范围而不是显式数字将一个人的姓名分配给一个数字.使用格式可以做到这一点,但由于我在数据集中有名称,我宁愿避免手动编写proc format.
data names;
input low high name $;
datalines;
1 10 John
11 20 Paul
21 30 George
31 40 Ringo
;
data numbers;
input number;
datalines;
33
21
17
5
;
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
data output;
input number name $;
datalines;
33 Ringo
21 George
17 Paul
5 John
;
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
你可以使用PROC SQL这样做:
proc sql;
create table output as
select numbers.number, names.name
from numbers left join names
on numbers.number ge names.low
and numbers.number le names.high
;
quit;
Run Code Online (Sandbox Code Playgroud)