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;