楼主: dxystata
738 5

[有偿编程] 如何取出每个变量的标签,在每个标签前统一加上aa [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2022-2-19 20:04:24 |AI写论文
20论坛币
  1. data aaa;
  2. label x='xxx' y='yyy';
  3. input x y;
  4. cards;
  5. 1 2
  6. 2 2
  7. ;
  8. run;
复制代码
如何取出每个变量的标签,在每个标签前加上aa,使x的标签变为aaxxx,y的标签变为aayyy。

label x='aaxxx' y='aayyy'; 自己可以指定,问题是如何用取出再加,谢谢!

关键词:label cards Input Abel Data

沙发
HXAI102230 在职认证  发表于 2022-2-20 13:52:06
proc contents data=aaa out=alabel;
run;

data newlabel;
  set alabel;
        labelnew=cats('aa',label);
run;

藤椅
whymath 发表于 2022-2-20 14:22:14
  1. data aaa;
  2. label x='xxx' y='yyy';
  3. input x y;
  4. cards;
  5. 1 2
  6. 2 2
  7. ;
  8. run;

  9. data _null_;
  10.   if 0 then set aaa;
  11.   call execute('proc datasets nolist; modify aaa; label ');
  12.   call execute(cats('x="aa',vlabel(x),'"'));
  13.   call execute(cats('y="aa',vlabel(y),'"'));
  14.   call execute(';quit;');
  15. run;
复制代码

板凳
dxystata 发表于 2022-2-28 10:37:06
whymath 发表于 2022-2-20 14:22
变量很多,怎么写更好

报纸
HXAI102230 在职认证  发表于 2022-2-28 14:43:47
proc contents data=aaa out=b;
run;

data step1;
        length code $200;
  set b;
        labelnew=cats('aa',label);
        code=cats(name,"=",quote(cats(labelnew)));
        keep code;  
run;

data step2;
    set step1 end=lastobs;
                if _n_=1 then call execute("data newaaa; set aaa; label");
                call execute(code);
run;
;run;

地板
whymath 发表于 2022-3-2 20:44:36
dxystata 发表于 2022-2-28 10:37
变量很多,怎么写更好
多次执行相同的操作,自然当用循环。
  1. data aaa;
  2.   label x='xxx' y='yyy';
  3.   input x y;
  4.   cards;
  5.   1 2
  6.   2 2
  7.   ;
  8. run;

  9. data _null_;
  10.   if 0 then set aaa;
  11.   array _var_ var1 var2 var3...varn;
  12.   call execute('proc datasets nolist; modify aaa; label ');
  13.   do over _var_;
  14.     call execute(cats(',vname(_par_),'="aa',vlabel(_par_),'"'));
  15.   end;
  16.   call execute(';quit;');
  17. run;
复制代码



查看我的精华帖:免费的 SAS 软件

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-31 08:11