SAS组按第一位数字表示

时间:2017-12-07 11:24:09

标签: sas

我在SAS中有一个带有很多数字的变量,例如11000,30129,11111,30999。我想用前两位数对此进行分组,以便#34; 11000和11111"和" 30129和30999"将在自己的桌子上。

2 个答案:

答案 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;