【发布时间】:2017-12-07 11:24:09
【问题描述】:
我在 SAS 中有一个变量,其中包含很多数字,例如 11000、30129、11111、30999。我想按前两位数字对其进行分组,因此“11000 和 11111”以及“30129 和 30999”将在一张自己的桌子。
【问题讨论】:
标签: sas
我在 SAS 中有一个变量,其中包含很多数字,例如 11000、30129、11111、30999。我想按前两位数字对其进行分组,因此“11000 和 11111”以及“30129 和 30999”将在一张自己的桌子。
【问题讨论】:
标签: sas
很简单,
您必须创建第二列并提取第 2 个数字。
然后按第二列对数据集进行排序。
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;
问候,
【讨论】:
我想我确实喜欢你,但我的新专栏只显示“.”。不过我觉得你的回答无论如何都能给我一些帮助,谢谢!
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;
【讨论】: