楼主: Michael1941
5486 10

如何提取变量值 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

57%

还不是VIP/贵宾

-

威望
0
论坛币
1087 个
通用积分
2.9700
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
960 点
帖子
73
精华
0
在线时间
222 小时
注册时间
2009-2-28
最后登录
2023-4-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有什么办法可以取出sas数据集中某个变量的所有值,并且以空格隔开。举例:数据集A中有两个变量name 和 age
name  age
a      10
b      12
c      15


我现在想要提取出所有成员的名字以空格分开放入变量namelist中,也就是我要namelist=‘a b c’
如何实现,谢谢
二维码

扫码加我 拉你入群

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

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

关键词:如何提取 变量值 sas数据集 name list 如何

沙发
sushe1527 发表于 2015-1-29 11:44:54 |只看作者 |坛友微信交流群
proc sql

使用道具

藤椅
Michael1941 发表于 2015-1-29 11:45:34 |只看作者 |坛友微信交流群
sushe1527 发表于 2015-1-29 11:44
proc sql
能否具体点,谢谢了

使用道具

板凳
sushe1527 发表于 2015-1-29 12:00:09 |只看作者 |坛友微信交流群
proc sql noprint;
select  name into :namelist separated by ' ' from a;
quit;

%put &namelist;

使用道具

报纸
Michael1941 发表于 2015-1-29 12:36:28 |只看作者 |坛友微信交流群
sushe1527 发表于 2015-1-29 12:00
proc sql noprint;
select  name into :namelist separated by ' ' from a;
quit;
这应该是将数据集A中的所有变量名都取出来,我要的是将数据集A中的变量name的值取出来

使用道具

地板
teqel 发表于 2015-1-29 13:59:15 |只看作者 |坛友微信交流群
Michael1941 发表于 2015-1-29 12:36
这应该是将数据集A中的所有变量名都取出来,我要的是将数据集A中的变量name的值取出来
你最好试一下

使用道具

7
Michael1941 发表于 2015-1-29 14:23:53 |只看作者 |坛友微信交流群
teqel 发表于 2015-1-29 13:59
你最好试一下
运行后结果是:
1035  proc sql;
1036  select  name into :namelist separated by ' ' from a;
ERROR: 以下这些列在起作用的表中没有找到: name.
1037  quit;

我觉得sushe1527应该是想写成:
proc sql;
        select name into :namelist separated by ' '
        from sashelp.vcolumn
        where libname=' WORK ' and memname='A';
quit;
但是上面这段程序就是取出数据集A中所有的变量名存进namelist中,即namelist="name age"

使用道具

8
pobel 在职认证  发表于 2015-1-29 14:30:24 |只看作者 |坛友微信交流群
Michael1941 发表于 2015-1-29 14:23
运行后结果是:
1035  proc sql;
1036  select  name into :namelist separated by ' ' from a;
如果 “但是上面这段程序就是取出数据集A中所有的变量名存进namelist中,即namelist="name age"”,
那为什么 “ERROR: 以下这些列在起作用的表中没有找到: name.”?

proc sql noprint;
select  name into :namelist separated by ' ' from sashelp.class;
quit;

%put &namelist;

使用道具

9
就喜欢马 发表于 2015-1-29 14:37:42 |只看作者 |坛友微信交流群
Michael1941 发表于 2015-1-29 12:36
这应该是将数据集A中的所有变量名都取出来,我要的是将数据集A中的变量name的值取出来
将数据集A中的所有变量都取出来,应该如下
  1. proc sql;
  2. select name into :m separated by " "
  3. from dictionary.columns
  4. where libname="WORK" and memname="A";
  5. quit;
  6. %put &m;
复制代码
已有 1 人评分经验 收起 理由
李会超 + 20 观点有启发

总评分: 经验 + 20   查看全部评分

使用道具

10
sushe1527 发表于 2015-1-29 14:51:05 |只看作者 |坛友微信交流群
看来要把noprint去掉,要不你不知道去哪看结果都,output窗口和log窗口效果是一样的
  1. data a;
  2. input name$  age;
  3. cards;
  4. a      10
  5. b      12
  6. c      15
  7. ;run;
  8. proc sql ;
  9. select  name into :namelist separated by ' ' from a;
  10. quit;
  11. %put &namelist;
复制代码

使用道具

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

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

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

GMT+8, 2024-4-26 19:56