首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Proc-sql在SAS中选择以M1、M2和M3结尾的特定变量?

如何使用Proc-sql在SAS中选择以M1、M2和M3结尾的特定变量?
EN

Stack Overflow用户
提问于 2019-08-25 15:09:59
回答 1查看 124关注 0票数 0

我在SASUniversity Edition.Now中有一个包含400+变量的大数据,我只想选择那些以M1,M2和M3结尾的变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-25 18:01:34

可以查询元数据表DICTIONARY.COLUMNS以选择数据集的变量名into宏变量,随后可以在针对该数据集的查询的select子句中使用该宏变量。

Proc CONTENTS还可以用于获取数据集的元数据,从而获得变量名。

可以使用一系列ORd表达式或Perl正则表达式来选择M变量名称。

SQL:

代码语言:javascript
复制
* suppose big data is a data set named PERM_LIB.SURVEY_RESULTS;

proc sql noprint;
  select name 
  into :varnamelist separated by ','
  from dictionary.columns  
  where libname = 'PERM_LIB' 
    and memname = 'SURVEY_RESULTS'
    and ( name like '%M1'
       or name like '%M2'
       or name like '%M3'
        )
  ;

  create table WORK.M_and_M_and_M as
  select id, &varnamelist
  from PERM_LIB.SURVEY_RESULTS
  ;

内容:

代码语言:javascript
复制
data work.have;
  do id = 1 to 10;
    array v 
      x1-x10
      y1-y10
      z1-z10
      abcm1-abcm10
      defm1-defm20
    ;
    output;
  end;

proc contents noprint data=work.have out=havemeta;
run;    

%let varnamelist=;

proc sql noprint;
  select name into :varnamelist separated by ','
  from havemeta
  where prxmatch ('/(?i)M(1|2|3)[ ]*$/', name)
  ;

  create table work.have_M123s as 
  select id, &varnamelist from work.have
  ;
quit;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57643968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档