我刚开始使用SAS 3天前,我需要将~50个csv文件合并到1个SAS数据集中。
50个csv文件有多个变量,共有1个变量,即" region_id"
我已经使用SAS企业指南拖放功能来执行此操作,但它太手动了,我花了半天时间将47个csv文件上传并合并到1个SAS文件中。
我想知道是否有人使用基础SAS有更聪明的方法吗?
任何建议和提示表示赞赏!
谢谢!
示例文件名: 2011Census_B01_AUST_short 2011Census_B02A_AUST_short 2011Census_B02B_AUST_short 2011Census_B03_AUST_short 。 。 2011Census_xx_AUST_short
我有超过50个csv文件要上传和合并。
csv文件中变量的数量和类型因csv文件而异。但是,所有csv文件都有1个公共变量=" region_id"
示例变量: region_id,Tot_P_M,Tot_P_F,Tot_P_P,Age_0_4_yr_F等......
答案 0 :(得分:0)
首先,我们需要一种自动导入方式。下面的简单宏将文件的位置和文件的名称作为输入,并将数据集输出到工作目录。 (我在Excel中使用连接函数创建SAS代码50次)。此外,我们正在对它进行排序,以便以后更容易合并。
%macro importcsv(location=,filename=);
proc import datafile="&location./&filename..csv"
out=&filename.
dbms=csv
replace;
getnames=yes;
run;
proc sort data= &filename.; by region_id; run;
%mend;
%importcsv(location = C:/Desktop,filename = 2011Census_B01_AUST_short)
.
.
.
然后再简单地将所有数据合并在一起。我添加省略号只是因为我不想出50次。
data merged;
merge dataseta datasetb datasetc ... datasetax;
by region_id;
run;
希望这有帮助。