我在SAS中有一个带有很多数字的变量,例如11000,30129,11111,30999。我想用前两位数对此进行分组,以便#34; 11000和11111"和" 30129和30999"将在自己的桌子上。
答案 0 :(得分:1)
这很简单,
您必须创建第二列并提取第一个数字。
然后按第二列对数据集进行排序。
data test;
infile datalines dsd ;
input a : 15. ;
datalines;
11000,
30129,
11111,
309999,
;
run;
data test_a;
length val_a $2;
set test;
val_a= SUBSTRN(a,1,2);
run;
proc sort data=test_a out=test_b;
by val_a;
run;
结果将是:
val_a a
11 11000
11 11111
30 30129
30 309999
然后你可以在val_a上创建2个带有选择的数据集,如下所示:
data want data_11 data_30;
set test_b;
if val_a = 11 then output data_11;
if val_a = 30 then output data_30;
run;
此致
答案 1 :(得分:0)
我想我确实喜欢你,但我的新专栏只显示“。”。但我认为你的回答无论如何都能给我一些帮助,谢谢!
data books;
infile "&path\Boken.csv" dlm=';' missover dsd firstobs=2;
input ISBN: $12.
Book: $quote150.;
run;
data test_a;
format val_ISBN 15.;
set books;
val_ISBN= SUBSTRN(ISBN,1,2);
run;
proc sort data=test_a out=test_b;
by val_ISBN;
run;
proc print data=test_b (obs=10) noobs ;
run;