楼主: AlanYQ
1869 1

[问答] SAS如何根据第几列实现选取数据集中的特定列 [推广有奖]

  • 0关注
  • 0粉丝

本科生

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
2.2000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
542 点
帖子
7
精华
0
在线时间
187 小时
注册时间
2015-12-31
最后登录
2023-4-11

楼主
AlanYQ 在职认证  学生认证  发表于 2020-11-4 21:09:04 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
input x y z;
datalines;
1 5 99
2 8 90
3 6 98
;
run;

如上,当变量名未知的时候,如何选取数据集中的第1列和第3列呢?
谢谢各位

二维码

扫码加我 拉你入群

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

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

关键词:数据集 Input Lines Data line

沙发
AlanYQ 在职认证  学生认证  发表于 2020-11-4 22:51:47 |只看作者 |坛友微信交流群
我已经解决了,方法比较笨

data a;
input x y z;
datalines;
1 5 0
2 8 9
3 6 8
;
run;

proc sql;
       create table aa as select name into:vname from dictionary.columns
                where libname='WORK' and memname='A' and varnum in (1,3);/*varnum=n n为第几个变量,即第几列*/
        run;
quit;
/*以上参考这篇帖子里的回答:https://bbs.pinggu.org/thread-717620-1-1.html*/
/*上面的程序主要是将对应列数的变量的变量名提取出来*/
proc transpose data=aa out=aa1 ;
id name;
run;
data aa1;
set aa1;
drop _name_;
run;
/*以上是把提取出来的变量名数据集转置,生成一个仅有对应变量名空数据集*/

proc append base=aa1 data=a force;
run;
/*使用append过程对数据进行更新,由于选取出的变量个数与原始库中的变量个数不同,所以要用force*/

使用道具

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

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

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

GMT+8, 2024-5-3 14:46