假设我有一个数据集已满,我想选择所有变量并将它们放在proc summary语句的var语句中。是否有捷径可寻?如何在select语句中选择所有变量?
proc sql noprint;
select * into :all separated by " "
from full;
%put all = &all.;
proc summary data=full print;
*var &list of variables from dataset;
class type;
output out=work.summary;
run;
答案 0 :(得分:2)
如有疑问,请在其他类似情况下尝试_NUMERIC_
(或_CHARACTER_
或_ALL_
):
proc means data=sashelp.class;
var _numeric_;
run;
FWIW,您的方法是错误的,但有一种类似的方法可行。
proc sql;
select name into :namelist separated by ' '
from dictionary.columns
where libname='WORK' and memname='FULL' and upcase(type)='NUM';
quit;
进入字典表(类似于PROC CONTENTS输出数据集)并将变量名称拉入列表。
答案 1 :(得分:0)
我可能只是使用默认列表语法。从proc内容和列表中获取第一个和最后一个变量的顺序。例如......
proc contents data = sashelp.class position;
假设w是列出的第一个变量,n是最后一个,那么
proc summary data=full print;
var w--n;
class type;
output out=work.summary;
run;
请注意,此类型的列表需要2个破折号。
如果您有顺序编号的变量,如x1 x2 x3 x4 x5
等。
你会做的
var x1-x5;