我如何写sas:
proc sql;
create table THIS as
select *
from MAIN(keep=id col1 -- col34)
where (AT LEAST ONE OF THE COLUMNS contains 1) ;
;
我有一个问题,想弄清楚如何写最后一行bc我想保留所有列,所以我不只是检查一列,我想检查所有列。
答案 0 :(得分:5)
如果使用DATA步骤而不是PROC SQL,则可以更灵活,因为您无法在PROC SQL代码中使用变量列表。
假设列表中的所有变量都是数字的,您可以这样做。
data this;
set main ;
keep id col1 -- col34;
if whichn(1,of col1 -- col34);
run;
答案 1 :(得分:4)
Tom是对的,最好的方法是使用数据步骤。如果您确定要使用SQL,尽管您可以执行以下操作:
proc sql noprint;
create table THIS as
select *
from MAIN(keep=id col1 -- col34)
where sum(col1,col2,col3, ... ,col34)
;
quit;