代码之家  ›  专栏  ›  技术社区  ›  Jessica Warren

使用proc sql,其中至少有1列是一个值

  •  3
  • Jessica Warren  · 技术社区  · 7 年前

    如何在sas中写入:

    proc sql; 
    create table THIS as 
            select * 
            from MAIN(keep=id col1 -- col34)
        where (AT LEAST ONE OF THE COLUMNS contains 1) ;
        ; 
    

    我在想如何写最后一行bc时遇到了一个问题,我想保留所有列,所以我不只是检查一列,我想检查所有列。

    2 回复  |  直到 7 年前
        1
  •  5
  •   Tom    7 年前

    如果使用数据步骤而不是PROC-SQL,您将具有更大的灵活性,因为您不能在PROC-SQL代码中使用变量列表。

    假设列表中的所有变量都是数字,您可以这样做。

    data this;
       set main ;
       keep id col1 -- col34;
       if whichn(1,of col1 -- col34);
    run;
    
        2
  •  4
  •   Robert Penridge    7 年前

    Tom是对的,最好的方法是使用数据步骤。如果您确定要使用SQL执行此操作,则可以执行以下操作:

    proc sql noprint;
      create table THIS as
      select * 
      from MAIN(keep=id col1 -- col34)
      where sum(col1,col2,col3, ... ,col34)
      ;
    quit;