楼主: 宗易
2530 8

[问答] 以运算符引用宏变量作为分母出现了麻烦 [推广有奖]

  • 1关注
  • 0粉丝

高中生

20%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
757 点
帖子
24
精华
0
在线时间
14 小时
注册时间
2013-1-17
最后登录
2013-5-23

楼主
宗易 发表于 2013-2-4 10:55:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在以宏变量nobs取得观测值数量(主要使用select count语句)后,进行除法运算时,出现了问题
在下猜测可能是宏变量类型不对
有没有什么办法可以调试的呢?

%let nobs=%str(proc sql; select count(*) from work.a;quit;);&nobs;
以上确实能取到当年数据集的观测值数量,但是在引用该数量进行运算时出错了
二维码

扫码加我 拉你入群

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

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

关键词:运算符 proc sql Select Count Elect

沙发
tangliang0905 发表于 2013-2-4 11:24:54
可不可以直接引用nobs,比如

proc sql;
select count(*) into : nobs from sashelp.class;
quit;

%put &nobs;

藤椅
zhangzachary 发表于 2013-2-4 12:51:05
楼上正解。
楼主,你的nobs宏变量只是%str()里面的那一串文本,而在output里出现的所谓的能够取到的观测值数量只是运行了那段文本的结果,所以你的&nobs自然不能运用于计算。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

板凳
pobel 在职认证  发表于 2013-2-4 12:53:03
%let nobs=%sysfunc(attrn(%sysfunc(open(sashelp.class)),nobs));

%put &nobs;
和谐拯救危机

报纸
webgu 发表于 2013-2-4 14:04:32
如果你前面已以用过SQL处理过。可以考虑用&sqlobs.

for example:

proc sql;
select *
from sashelp.class;
quit;

%put &sqlobs;
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

地板
宗易 发表于 2013-2-4 15:43:04
tangliang0905 发表于 2013-2-4 11:24
可不可以直接引用nobs,比如

proc sql;
确实可以,谢谢啦。。。

7
宗易 发表于 2013-2-4 15:43:54
zhangzachary 发表于 2013-2-4 12:51
楼上正解。
楼主,你的nobs宏变量只是%str()里面的那一串文本,而在output里出现的所谓的能够取到的观测值 ...
分析得很对,我当时看log,里面取得的确实是一段文本。。。

8
宗易 发表于 2013-2-4 15:50:05
pobel 发表于 2013-2-4 12:53
%let nobs=%sysfunc(attrn(%sysfunc(open(sashelp.class)),nobs));

%put &nobs;
非常感谢您的答复。

9
宗易 发表于 2013-2-4 15:52:25
webgu 发表于 2013-2-4 14:04
如果你前面已以用过SQL处理过。可以考虑用&sqlobs.

for example:
非常感谢您的答复。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 03:12