首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重命名合并中的SAS变量

重命名合并中的SAS变量
EN

Stack Overflow用户
提问于 2020-11-11 07:24:23
回答 1查看 194关注 0票数 1

假设我有以下数据集查找:

代码语言:javascript
运行
复制
ID   T001  T002  T002  T004  T005
1    0     1     2     3     4
2    1     2     3     4     5

我想将它合并到我的主dataset main:

代码语言:javascript
运行
复制
proc sql;
create table main as
select a.*, b.*
from main as a
left join lookup as b on a.ID = b.ID;
quit;

但是,这将合并"T001“、"T002”、"T003“等变量。我试图用合并/连接重命名变量,而不必手动重命名数据集中的每一个变量,因为数据集中有100个变量。我想找些像

代码语言:javascript
运行
复制
ID   V1    V2    V3    V4    V5
1    0     1     2     3     4
2    1     2     3     4     5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 07:32:31

在联接之后,可以使用一个简单的宏函数动态地更改变量名。

代码语言:javascript
运行
复制
data have;
input ID T001 T002 T003 T004 T005;
datalines;
1 0 1 2 3 4
2 1 2 3 4 5
;

%macro rn;
   %do i = 1 %to 5;
      T00&i. = V&i.
   %end;
%mend;

proc datasets lib=work nolist;
   modify have;
   rename %rn;
run;quit;

编辑:

代码语言:javascript
运行
复制
data have;
   array t T001-T586 (586*100);
run;

%macro rn;
   %do i=1 %to 586;
      T%sysfunc(putn(&i., z3.)) = V&i.
   %end;
%mend;

proc datasets lib=work nolist;
   modify have;
   rename %rn;
run;quit;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64782127

复制
相关文章

相似问题

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