全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5680 11
2016-01-12
例如,想知道SAS某个数据集第N列的名称,想知道SAS第N列第M行的值,请问应该怎么写CODE,谢谢!

二维码

扫码加我 拉你入群

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

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

全部回复
2016-1-12 13:48:10
获取第i个变量名
data colomn;
   length name $ 8;
   dsid=open("work.yourdata","i");
   num=attrn(dsid,"nvars");
   do i=1 to num;
      name=varname(dsid,i);
      output;
   end;
   rc=close(dsid);
   keep i name;
run;

第M行的话,用point=限制就可以了
二维码

扫码加我 拉你入群

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

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

2016-1-12 13:57:35
谢谢楼上,但这个程序只是映射列名和列号。
而我想要的是使用列号代替列名进行各种操作。

例如:
data test;
set sashelp.class;
X=name;
run;

上面程序我想让X=第一列,不管第一列的列名是name还是sex还是age等等。
你的程序可以让我从映射中去找到第1列的列名(假设叫ABC),然后再使用X=ABC。但太麻烦了,不够简洁优雅。
二维码

扫码加我 拉你入群

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

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

2016-1-12 14:02:53
补充一下,例如我想让X等于第1列,我希望得到的帮助是,有没有这样一个函数代表第N列,例如下面的column(1)代表第1列。
(column()函数是我自己说的,我想知道有没有这样的函数,如果有,格式语法是什么)

data test;
set sashelp.class;
X=column(1);
run;
二维码

扫码加我 拉你入群

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

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

2016-1-12 14:08:37
caibirdcnb 发表于 2016-1-12 13:57
谢谢楼上,但这个程序只是映射列名和列号。
而我想要的是使用列号代替列名进行各种操作。
生成宏变量,就可以实现的。比如用&&var&i来控制第i个变量名,&var1=name &var2=sex。
是有点麻烦。

更简洁的方法,等大神来指教吧。
二维码

扫码加我 拉你入群

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

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

2016-1-12 14:14:47
caibirdcnb 发表于 2016-1-12 14:02
补充一下,例如我想让X等于第1列,我希望得到的帮助是,有没有这样一个函数代表第N列,例如下面的column(1) ...
array定义数组是可以的。但同一个数组里,要么全部是字符型,要么是数值型,不能混用。

array column$ name age sex;
column{1}=name;
column{2}=age;
column{3}=sex;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群