楼主: lizhewenbei
1865 6

请问大神:proc sql怎么表示类似于data中 set x1-x10的类似表达? [推广有奖]

  • 15关注
  • 5粉丝

副教授

36%

还不是VIP/贵宾

-

威望
0
论坛币
309 个
通用积分
11.4770
学术水平
4 点
热心指数
13 点
信用等级
5 点
经验
9699 点
帖子
609
精华
0
在线时间
496 小时
注册时间
2008-2-6
最后登录
2024-1-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问大神:proc sql怎么表示类似于data中 set x1-x10的类似表达?
我希望利用这个步骤:
proc sql;
create table test as
select distinct
a.stkcd, a.earning,
b.x1-b.x10,/*问题出在这一步*/
from
        cont.earning as a
          left join
        gfs.contingency as b on a.stkcd=aj.stkcd and a.accperyy=aj.year
order by stkcd;
quit;


结果是:a.stkcd, a.earning都出现在最后的表格test中,而b.x1-b.x10都消失了。
奇葩:log没有报错。
二维码

扫码加我 拉你入群

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

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

关键词:proc sql Data Set ROC sql create

沙发
lqyrendajinji 发表于 2014-12-31 07:06:38 |只看作者 |坛友微信交流群
b.x1-b.x10

%do i=1 %to 10; b.x&i., %end;

使用道具

藤椅
星落荒原 发表于 2014-12-31 10:17:53 |只看作者 |坛友微信交流群
数据纵向简单叠加用outer union由于set a b;中相同的cloumn被重加到一起了所以要加上corr这个限定,outer union corr可以将a b中所有obs简单纵向叠加并且把相同的column叠加在一起
已有 1 人评分论坛币 收起 理由
admin_kefu + 30 热心帮助其他会员

总评分: 论坛币 + 30   查看全部评分

使用道具

板凳
lizhewenbei 学生认证  发表于 2015-1-1 19:38:54 |只看作者 |坛友微信交流群
lqyrendajinji 发表于 2014-12-31 07:06
b.x1-b.x10

%do i=1 %to 10; b.x&i., %end;
回复晚了!抱歉!
请问是要把“  %do i=1 %to 10; b.x&i., %end;  ”加入proc sql语句中,替换"  
b.x1-b.x10  "吗?

使用道具

报纸
lizhewenbei 学生认证  发表于 2015-1-1 19:41:11 |只看作者 |坛友微信交流群
星落荒原 发表于 2014-12-31 10:17
数据纵向简单叠加用outer union由于set a b;中相同的cloumn被重加到一起了所以要加上corr这个限定,outer  ...
感谢星落荒原,我这里用的不是纵向叠加,用的是横向合并。把cont.earning和  gfs.contingency两个数据集,用stkcd的标准合并到一起。目前我遇到的问题是,b中存在X1-X10,变量名称很有规律,能不能不写成X1,X2,X3,X4…………X10

使用道具

地板
yongyitian 发表于 2015-1-2 03:08:24 |只看作者 |坛友微信交流群
SAS 的 variable list(如,x1-x10, name--weight, study: 等)可以在data step, proc step 和数据集的选项中使用. 但不能在 proc sql 中的 select 从句中使用.
这可能是因为 proc sql 中的变量名是用逗号隔开的,而在其它地方变量名是用空格隔开的。

还有, 在proc sql中, 可以用 select 从句作变量之间的计算. x1-x10 会被当作x1减去x10.
在LZ的程序中x1-x10后面没有as将计算的值赋给新的变量.


在LZ的例子中可以用 b.* 代替 b.x1-b.x10 并用 gfs.contingency (drop= var1 var2...) as b 去掉b中不需要的变量.

使用道具

7
lizhewenbei 学生认证  发表于 2015-1-3 12:06:46 |只看作者 |坛友微信交流群
yongyitian 发表于 2015-1-2 03:08
SAS 的 variable list(如,x1-x10, name--weight, study: 等)可以在data step, proc step 和数据集的 ...
领教了!感谢你的指点!

使用道具

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

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

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

GMT+8, 2024-5-6 06:11