将模式匹配的文件读入一个SAS数据集中
我想使用模式匹配将多个.csv文件读入单个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语句中使用
/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;