楼主: blliufan
4717 29

[原创博文] 求高手,小弟又来了 [推广有奖]

11
zhangzachary 发表于 2012-2-14 09:57:36
blliufan 发表于 2012-2-14 09:23
哈哈,我这个程序很长,这是最后一个宏里的一段函数,前面的都没问题了。
我的c3不是不存在,是观测值为 ...
你用call symput("nobs3",coalesce(nobs,0))来代替原code试试看~
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

12
blliufan 发表于 2012-2-14 10:41:45
zhangzachary 发表于 2012-2-14 09:57
你用call symput("nobs3",coalesce(nobs,0))来代替原code试试看~
还是不行。问题在于连续几个队nobs赋值后,SAS就会对后面的Nobs判断不出来了
jennings!

13
zhangzachary 发表于 2012-2-14 10:56:32
blliufan 发表于 2012-2-14 10:41
还是不行。问题在于连续几个队nobs赋值后,SAS就会对后面的Nobs判断不出来了
错误和之前的一样?
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

14
blliufan 发表于 2012-2-14 11:36:10
zhangzachary 发表于 2012-2-14 10:56
错误和之前的一样?
不一样,它默认nob2到nob4和nob1是一样的值。尽管data2到data4都是0观测值,但都被等于1,也就nobs1了
jennings!

15
zhangzachary 发表于 2012-2-14 11:42:25
blliufan 发表于 2012-2-14 11:36
不一样,它默认nob2到nob4和nob1是一样的值。尽管data2到data4都是0观测值,但都被等于1,也就nobs1了
话说,我貌似知道怎么回事了……当没有观测值的时候,nobs 变量是不存在的,而你用的又是call symput,所以data2到data4没有观测值时,你赋予的宏变量依然是data1里面的,因此coalesce函数也不起作用,变量不存在就无法判断是否是0或者miss value了……
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

16
blliufan 发表于 2012-2-14 11:51:59
zhangzachary 发表于 2012-2-14 11:42
话说,我貌似知道怎么回事了……当没有观测值的时候,nobs 变量是不存在的,而你用的又是call symput,所 ...
那该怎么办呢
jennings!

17
zhangzachary 发表于 2012-2-14 12:06:36
blliufan 发表于 2012-2-14 11:51
那该怎么办呢
proc sql noprint;
select count(*) into :nobs3 from c3;
quit;

sas92 可以直接用,91貌似是missing value,最多加个我刚给你的那个function,再试试看~
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

18
blliufan 发表于 2012-2-14 12:08:08
zhangzachary 发表于 2012-2-14 12:06
proc sql noprint;
select count(*) into :nobs3 from c3;
quit;
我的93,怎么办
jennings!

19
zhangzachary 发表于 2012-2-14 12:11:21
blliufan 发表于 2012-2-14 12:08
我的93,怎么办
更好啊,一般是向下兼容的,应该可以直接用~
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

20
blliufan 发表于 2012-2-14 12:12:31
zhangzachary 发表于 2012-2-14 12:11
更好啊,一般是向下兼容的,应该可以直接用~
这个程序我打进去了。那个求到的nob3是在哪里储存的。如何调用啊。
jennings!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 05:40