将模式匹配的文件读入一个SAS数据集中

将模式匹配的文件读入一个SAS数据集中,sas,Sas,我想使用模式匹配将多个.csv文件读入单个SAS数据集中。例如,如果目录/home/datasets中有5个文件: /home/datasets ~/output_group1a.csv ~/output_group1b.csv ~/output_group1c.csv ~/output_group2a.csv ~/output_group2b.csv 都具有已知且相同的结构和数据类型。我只想读入与组1对应的文件,而不必显式指定文件名。您可以在infle语句中使用

我想使用模式匹配将多个.csv文件读入单个SAS数据集中。例如,如果目录
/home/datasets
中有5个文件:

/home/datasets
   ~/output_group1a.csv
   ~/output_group1b.csv
   ~/output_group1c.csv
   ~/output_group2a.csv
   ~/output_group2b.csv

都具有已知且相同的结构和数据类型。我只想读入与组1对应的文件,而不必显式指定文件名。

您可以在infle语句中使用通配符。如果每个文件中都有标题,则需要对此进行说明。这里还有一个例子


可以在内嵌语句中使用通配符。如果每个文件中都有标题,则需要对此进行说明。这里还有一个例子


可能是@RobertPenridge的副本我不希望它们合并,我希望文件stackedIt只是标题中的一个糟糕的词语选择。。。链接的问题确实回答了你的问题。我认为这是一个重复的问题,但我也不像下面的答案那样喜欢这个问题的答案-这个问题处理类似于第一个obs的问题。事实上,@RobertPenridge,这个问题确实想要合并(并排,而不是设置)数据-请注意,每个文件都有一个ID变量和一个不同的第二个变量。@RobertPenridge的可能副本我不希望它们合并,我希望文件stackedIt只是标题中的一个糟糕的单词选择。。。链接的问题确实回答了你的问题。我认为这是一个重复的问题,但我也不像下面的答案那样喜欢这个问题的答案-这个问题处理类似于第一个obs的问题。事实上,@RobertPenridge,这个问题确实想要合并(并排,而不是设置)数据-请注意,每个文件都有一个ID变量和一个不同的第二个变量。
data try01;

length filename txt_file_name $256;

retain txt_file_name;

infile "Path\*.txt" eov=eov filename=filename truncover;

input@;

if _n_ eq 1 or eov then do;

txt_file_name = scan(filename, -2, ".\");

eov=0;

end;

else input

 *Place input code here;

;



run;