楼主: xyyxxf111
1464 3

[问答] 如何在指定的变量后增加一个新的变量 [推广有奖]

  • 4关注
  • 0粉丝

大专生

96%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0.0500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
480 点
帖子
29
精华
0
在线时间
57 小时
注册时间
2020-11-19
最后登录
2025-9-2

楼主
xyyxxf111 发表于 2021-9-13 14:33:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教下,如何在数据集的某个变量后插入一个新的变量啊?例如数据集有100个变量,准备在指定的一个变量后插入一个新的变量,例如这个指定的变量是第70个变量,也就是说,前面的变量很多,用罗列的方法太麻烦。有没有好的办法啊?多谢!
二维码

扫码加我 拉你入群

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

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

关键词:数据集 有没有

沙发
tangbohu_us 学生认证  发表于 2021-9-13 20:43:53
你可以把数据集分成两个,加入变量后再合并。

比如选前面1到70个变量:

proc sql;
select nameinto :var_list1 separated by " "
where libname="MYLIB" and memname='MYDATA'
and varnum between 1 and 70;
quit;

data want1;
set have1 (keep = &var_list1);
run;

藤椅
whymath 发表于 2021-9-13 23:22:50
你需要设法获取到第70、71个变量的变量名,当然还有一些其它的关键变量名,然后就可以使用下面程序中的方法,获取你想要的数据集:
  1. data have;
  2.   length var1-var10 8 insertat7 $8;
  3.   call missing(of _all_);
  4. run;

  5. ods noresults;
  6. proc report out = want;
  7.   column var1--var7 insertat7 var8--var10;
  8. run;
复制代码

板凳
jg.sas 发表于 2021-9-15 10:19:24
获取变量的varnum,更改需要变量的varnum,然后做成variable list,用retain来改变变量顺序
  1. proc sql;
  2.         create table vars as
  3.         select varnum,name
  4.         from dictionary.columns
  5.         where memname='CLASS' and libname="SASHELP";
  6. quit;

  7. data vars;
  8.         set vars;
  9.         if name='Age' then varnum=1.1;
  10. run;

  11. proc sql ;
  12.         select name into :vars separated by' '
  13.         from vars
  14.         order by varnum;
  15. quit;

  16. %put &vars.;
  17. data class;
  18.         retain &vars.;
  19.         set sashelp.class;
  20. run;
  21. proc print ;
  22. run;
复制代码

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

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