SAS 中的数据分流到不同的文件当中

在一个文件中,对于一个变量,可能存在不同的类型,比如:性别,类别:男、女、共生

但是可能特定的情况下,只需要其中一个类型的信息,并且需要将信息保存到本地文件当中。

思路:

原始数据为一个 excel 文件

 

(1)首先将本地文件(包含所有的信息),全部读取到 SAS 数据集当中

1 proc import out=Mysas.person2 datafile="C:\Users\hr\Desktop\person\raw.xlsx" dbms=excel replace;
2     range = "Sheet1$";
3     getnames = yes;
4     mixed = no;
5     scantext = yes;
6     usedate = yes;
7     scantime = yes;
8 run;

(2)对全部信息的数据集,进行过滤,将不同的信息分类到不同的数据集中

data split_data Mysas.raw_partA Mysas.raw_partB;
set person;
    if sex="" then output Mysas.raw_partA;
    else output Mysas.raw_partB;
;
run;

(3)将不同的数据集,导出到本地的excel 中

1 proc export data = Mysas.raw_partB outfile = "C:\Users\hr\Desktop\person\raw_partB.xlsx" dbms = xlsx replace;
2 sheet = "sheet1";
3 run;

 结果为:
生成除原始数据之外的另外两个表格文件

raw_partA 的内容为:

raw_partB 的内容为:

这样就将所有的数据,按照性别分到不同的文件当中了。

完整代码:

 1 * 将数据表格进行切表,将不同的内容分到不同的表格当中 ;
 2 proc import out=Mysas.person2 datafile="C:\Users\hr\Desktop\person\raw.xlsx" dbms=excel replace;
 3     range = "Sheet1$";
 4     getnames = yes;
 5     mixed = no;
 6     scantext = yes;
 7     usedate = yes;
 8     scantime = yes;
 9 run;
10 
11 data split_data Mysas.raw_partA Mysas.raw_partB;
12 set person;
13     if sex="" then output Mysas.raw_partA;
14     else output Mysas.raw_partB;
15 ;
16 run;
17 
18 proc export data = Mysas.raw_partA outfile = "C:\Users\hr\Desktop\person\raw_partA.xlsx" dbms = xlsx replace;
19 sheet = "sheet1";
20 run;
21 
22 proc export data = Mysas.raw_partB outfile = "C:\Users\hr\Desktop\person\raw_partB.xlsx" dbms = xlsx replace;
23 sheet = "sheet1";
24 run;

 

posted @ 2019-07-03 16:06  Guai人  阅读(400)  评论(0编辑  收藏  举报