gpt4 book ai didi

sas - 使用SAS宏导入多个具有顺序名称的txt文件

转载 作者:行者123 更新时间:2023-12-04 04:32:20 24 4
gpt4 key购买 nike

我有 4 个 txt 文件需要加载到 SAS 并将它们保存为 4 个 sas 文件。以下是文本文件的外观: cle20130805.txt、cle20130812.txt、cle20130819.txt 和 cle20130826.txt。我在 % Macro 下使用了 % Do 循环,以便仅通过一次宏调用导入 4 个文件。所以这是我的代码:

%macro cle;
%do i=20130805 %to 20130826 %by 7;
Data cleaug.cle&i;
infile "home/abc/cle&i..txt" dlm= '|' dsd firstobs=1 obs=100;
input a_no b_no c_no;
run;
%end;
%mend cle;
%cle

我希望保存 4 个 sas 文件,并且只调用一次 marco。但是,它无法成功运行。任何想法我在代码中做错了什么?

谢谢,

最佳答案

我不建议您尝试编写一个宏来导入所有四个文件。要么它是一个你只使用一次的特定宏——在这种情况下你可以手工编写它并节省你已经花费的时间——或者它是你每个月都必须修改的东西或你使用的任何东西它。

取而代之的是,使宏可以精确地执行一个文件,但包含轻松调用它所需的信息。在这种情况下,听起来您需要一个参数:日期,例如 20130805 或诸如此类。然后给它一个合理的名字,真正说明它的作用。

%macro import_files(date=);
Data cleaug.cle&date.;
infile "home/abc/cle&date..txt" dlm= '|' dsd firstobs=1 obs=100;
input a_no b_no c_no;
run;
%mend import_files;

现在你称之为:
%import_files(date=20130805)
%import_files(date=20130812)
%import_files(date=20130819)
%import_files(date=20130826)

就像你上面写的宏一样简单,甚至对四个日期进行硬编码。如果日期以某种方式可预测,您也可以非常轻松地生成宏调用(例如,如果超过 4 个)。如果您真的喜欢循环,您可以列出文件所在位置的目录,或者使用 CALL EXECUTE 从数据步骤调用宏。

关于sas - 使用SAS宏导入多个具有顺序名称的txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20386869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com