【问题标题】:Read in Files with pattern match into one SAS dataset将具有模式匹配的文件读入一个 SAS 数据集
【发布时间】:2015-04-01 20:30:03
【问题描述】:

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

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

所有都具有已知且相同的结构和数据类型。我只想读取与组 1 对应的那些文件,而不必明确指定文件名。

【问题讨论】:

  • @RobertPenr​​idge 我不希望它们合并,我想要堆叠的文件
  • 只是标题中的单词选择不当...链接的问题确实回答了您的问题。
  • 我认为这是重复的,但我也不像下面的答案那样喜欢那个答案 - 这个处理像 1st obs 这样的事情。
  • 实际上,@RobertPenr​​idge,那个问题 does 想要合并(并排,而不是设置)数据 - 请注意它有一个 ID 变量和一个 Different 每个文件的第二个变量。

标签: sas


【解决方案1】:

您可以在 infile 语句中使用通配符。如果每个文件中都有标题,则需要考虑这一点。这是一个更多的例子。

https://gist.github.com/statgeek/4c27ea9a7ed6d3528835

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 2020-01-31
    • 2022-11-15
    • 1970-01-01
    相关资源
    最近更新 更多