我有一个Excel文件,它总是具有相同的名称,但表的内容会发生变化。我正在寻找一个代码,根据其中一个单元格中的值来命名表。
例如:
如果小区A3等于"就业信息",我希望将该表命名为" Jobs"。 如果单元格A3等于"通货膨胀信息",我希望表格被命名为"货币"。
等
我想定义一个宏(即%table(filename,cell)
),或者if then else语句的一个循环来实现这一点。不幸的是,我似乎无法逻辑地围绕这个问题。如果有SAS经验的人可以帮助我,那将是非常棒的。我将尽快编辑我的问题,以包含一些我已经尝试但未能完成工作的代码。
答案 0 :(得分:3)
您需要阅读数据才能找到内容。然后,您可以创建一个宏变量,以便使用PROC DATASETS轻松重命名数据集。
假设您已将Excel工作表转换为名为WORK.HAVE的数据集。我们还假设您知道哪个变量包含来自A列的数据,让我们调用该变量A.数据中是否有任何内容可以判断哪个观察值是使用的?现在让我们假设A3是指第二次观察,因为工作表的第一行应该有变量名。
所以在这种情况下你需要这样的东西:
%let newname=have;
data _null_;
set have (firstobs=2);
if A="Employment Information" then call symputx('newname','Jobs');
else if A="Inflation Information" then call symputx('newname','Currency');
stop;
run;
proc datasets nolist lib=work;
change have=&newname;
run;
quit;