楼主: vieri32
5638 5

[原创博文] SAS修改变量名一问 [推广有奖]

  • 1关注
  • 0粉丝

硕士生

22%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1062 点
帖子
88
精华
0
在线时间
110 小时
注册时间
2009-12-6
最后登录
2021-7-12

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有一百个变量..想要在每个变量名前都加一个词..比如"Open_XXXX"....请问有快速方法可以搞定吗??


谢谢各位了!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Open Pen 一百个

回帖推荐

ntsean 发表于3楼  查看完整内容

网上找来的 options macrogen mprint mlogic; %macro rename(lib,dsn); options pageno=1 nodate; proc contents data=&lib..&dsn; title "Before Renaming All Variables"; run; proc sql noprint; select nvar into :num_vars from dictionary.tables where libname="&LIB" and memname="&DSN"; select distinct(name) into :var1- :var%TRIM(%LEFT(&num_vars)) from dictionary.columns where l ...

本帖被以下文库推荐

沙发
hbpxp 发表于 2011-3-26 22:02:35 |只看作者 |坛友微信交流群
SAS好像有个专门存储工作表中变量名的表vtable,不知是否可以利用下
1# vieri32

使用道具

藤椅
ntsean 发表于 2011-3-26 22:25:08 |只看作者 |坛友微信交流群
网上找来的

options macrogen mprint mlogic;
%macro rename(lib,dsn);
options pageno=1 nodate;
proc contents data=&lib..&dsn;
title "Before Renaming All Variables";
run;
proc sql noprint;
  select nvar into :num_vars
from dictionary.tables
where libname="&LIB" and
        memname="&DSN";
  select distinct(name) into :var1-
:var%TRIM(%LEFT(&num_vars))
  from dictionary.columns
where libname="&LIB" and
        memname="&DSN";
quit;
run;
proc datasets library=&LIB;
   modify &DSN;
rename
  %do i=1 %to &num_vars;
&&var&i=NEWNAME_&&var&i.
  %end;
;
quit;
run;
options pageno=1 nodate;
proc contents data=&lib..&dsn;
title "After Renaming All Variables";
run;
%mend rename;
%rename(WORK,ONE)
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

板凳
vieri32 发表于 2011-3-27 01:54:52 |只看作者 |坛友微信交流群
3# ntsean
这么复杂啊...

使用道具

报纸
ntsean 发表于 2011-3-27 07:35:00 |只看作者 |坛友微信交流群
这是macro,你只需要代入你的东西就可以了

就是最后一行括号里面把work改为你的library name, one改为你的dataset

还有一个地方就是里面 一个 NEWNAME 改为你的新name,应该是 open
然后run macro就可以了
vieri32 发表于 2011-3-27 01:54
3# ntsean
这么复杂啊...

使用道具

地板
vieri32 发表于 2011-3-27 09:20:26 |只看作者 |坛友微信交流群
ntsean 发表于 2011-3-27 07:35
这是macro,你只需要代入你的东西就可以了

就是最后一行括号里面把work改为你的library name, one改为你的dataset

还有一个地方就是里面 一个 NEWNAME 改为你的新name,应该是 open
然后run macro就可以了
vieri32 发表于 2011-3-27 01:54
3# ntsean
这么复杂啊...
嗯....十分感謝您....

雖然我只是部分變量要改....不過這個MACRO太有用了...謝謝!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-21 14:53