【发布时间】:2014-03-06 07:46:24
【问题描述】:
我有一个可能很简单但我想不通的问题。
我有列 name1 c1 c2 c3 c4 .... c8 我必须按名称对这些列求和并创建一个新数据。
这是我写的代码,但是没有用。
你能帮帮我吗?
PROC SQL;
CREATE TABLE WORK.data1 AS
SELECT t1.name1,
%let k=8
%macro test;
%do i=0 %to &k;
%sysfunc(SUM(C&i)) AS C&i;
%END;
%mend test;
%test;
FROM WORK.data t1
GROUP BY t1.name1,
QUIT;
【问题讨论】:
-
也许可以看看这篇论文:www2.sas.com/proceedings/sugi29/243-29.pdf
-
好的,我会研究这个。非常感谢
-
没问题 :) 提示:在 %let 之后缺少分号,此时不需要使用 sysfunc。您可以将 mprint 与 mfile 结合使用,以获取包含由宏代码生成的基本代码的文件。对于调试和学习非常有用。
-
我很新,感觉就像在海洋中:)。 mprint 和 mfile 现在在我的搜索列表中。谢谢。
-
是的,SAS 一开始有点令人困惑,但对于某些任务来说,它确实是一个很棒的工具。