如何将多个csv文件合并到一个SAS文件中

如何将多个csv文件合并到一个SAS文件中,csv,merge,sas,Csv,Merge,Sas,我3天前才开始使用SAS,我需要将~50个csv文件合并到1个SAS数据集中 50个csv文件有多个变量,只有一个通用变量,即“region_id” 我使用了SAS enterprise guide拖放功能来实现这一点,但它太手动了,我花了半天时间上传47个csv文件并将其合并到1个SAS文件中 我想知道是否有人有一种更聪明的方法来使用base SAS实现这一点 任何建议和提示,谢谢 谢谢大家! 文件名示例: 2011年保险单 2011年保险单 2011年保险单 2011年保险单 . . 201

我3天前才开始使用SAS,我需要将~50个csv文件合并到1个SAS数据集中

50个csv文件有多个变量,只有一个通用变量,即“region_id”

我使用了SAS enterprise guide拖放功能来实现这一点,但它太手动了,我花了半天时间上传47个csv文件并将其合并到1个SAS文件中

我想知道是否有人有一种更聪明的方法来使用base SAS实现这一点

任何建议和提示,谢谢

谢谢大家!

文件名示例: 2011年保险单 2011年保险单 2011年保险单 2011年保险单 . . 2011年保证xx年澳大利亚年

我有50多个csv文件要上传和合并

csv文件中变量的数量和类型在每个csv文件中有所不同。但是,所有csv文件都有一个公共变量=“region\u id”

示例变量:
地区id、Tot\u P\M、Tot\u P\F、Tot\u P\P、年龄0\u 4岁等。首先,我们需要一种自动导入方式。下面的简单宏将文件的位置和文件名作为输入,并将数据集输出到工作目录。(我将使用Excel中的concatenate函数创建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;

希望这有帮助。

首先,您应该使用PROC import语句将csv文件中的数据导入SAS数据集。然后使用merge语句合并它们。文件名是什么样的?如果它们相似,我们可以使用SAS MACROPlease提供一些示例文件名和文件内容,我们将能够更好地帮助您@andrey_sz一步就可以将多个CSV导入一个SAS数据集中。因此,虽然先将每个数据导入到自己的数据集中是一种有效的方法,但可能没有必要。。。使用上一篇文章中的任何答案导入文件后,您可以编写宏来进行合并。没有更多关于文件的详细信息,没有什么其他建议。感谢大家的帮助-我尝试了PROC导入来导入少量数据文件(即,如果上载5个文件,我重复了PROC导入5次),有没有一种方法可以导入~50个文件而无需重复PROC导入50次?合并它们也是如此。。。。