我在《联合国系统会计准则》中有一大一栏代表世界各国。 我通过远距离转播建立了这一系统,我代表了每个国家的每个身份证的价值——见以下守则:
proc transpose data=basic_summarised out=cntrs_transposed (drop=_name_ _label_);
by ID code;
id country;
var value;
run;
现在,我的目标是重新排列各栏,以便国家栏目在产出中出现。 为了做到这一点,我采取宏观行动:
%macro reorder_vars(Dataset);
proc sql noprint;
select compress(name,, kn ) into : dsn separated by " "
from dictionary.columns
where libname="%upcase(%scan(&dataset,1,.))" and memname="%upcase(%scan(&dataset,2,.))"
order by name
;
quit;
data %scan(&dataset,2,.);
retain ID code &dsn;
set &Dataset;
run;
%mend;
%reorder_vars(work.cntrs_transposed);
这一工作只针对有一字名字的国家,那些有图形标志或空间的国家,在变量清单的末尾(这些国家的例子有美国、刚果(共和国)等)。 我试图将压缩调压器改为粉碎机,认为它会消除校外和空间,但表没有变化。
我无法确定,在座是否有任何其他东西可以实现预期的结果?
感谢你们的帮助。