如何将多个csv文件合并为1个SAS文件

时间:2014-04-09 03:57:13

标签: csv merge sas

我刚开始使用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等......

1 个答案:

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

希望这有帮助。