使用 proc sql,其中至少 1 列是一个值
Using proc sql, Where at least 1 column is a value
如何用sas写:
proc sql;
create table THIS as
select *
from MAIN(keep=id col1 -- col34)
where (AT LEAST ONE OF THE COLUMNS contains 1) ;
;
我在弄清楚如何写最后一行时遇到问题,因为我想保留所有列,所以我不只是检查一列我想检查所有列。
如果您使用 DATA 步而不是 PROC SQL,您将拥有更大的灵活性,因为您不能在 PROC SQL 代码中使用变量列表。
假设列表中的所有变量都是数字,您可以这样做。
data this;
set main ;
keep id col1 -- col34;
if whichn(1,of col1 -- col34);
run;
Tom 是对的,最好的方法是使用数据步骤。如果你确定你想用 SQL 来做,尽管你可以这样做:
proc sql noprint;
create table THIS as
select *
from MAIN(keep=id col1 -- col34)
where sum(col1,col2,col3, ... ,col34)
;
quit;
如何用sas写:
proc sql;
create table THIS as
select *
from MAIN(keep=id col1 -- col34)
where (AT LEAST ONE OF THE COLUMNS contains 1) ;
;
我在弄清楚如何写最后一行时遇到问题,因为我想保留所有列,所以我不只是检查一列我想检查所有列。
如果您使用 DATA 步而不是 PROC SQL,您将拥有更大的灵活性,因为您不能在 PROC SQL 代码中使用变量列表。
假设列表中的所有变量都是数字,您可以这样做。
data this;
set main ;
keep id col1 -- col34;
if whichn(1,of col1 -- col34);
run;
Tom 是对的,最好的方法是使用数据步骤。如果你确定你想用 SQL 来做,尽管你可以这样做:
proc sql noprint;
create table THIS as
select *
from MAIN(keep=id col1 -- col34)
where sum(col1,col2,col3, ... ,col34)
;
quit;