SAS中文论坛
标题:
proc means过程中一个怪问题
[打印本页]
作者:
shiyiming
时间:
2009-12-11 18:04
标题:
proc means过程中一个怪问题
proc means 使用得非常多了,但不知为什么今天在分组求中位数时却报出错,如下:
proc means data=tt1 noprint;
var jsje;
by code;
id name xylx;
output out=x1 median=jsje50;
run;
log里提示:
ERROR: Read Access Violation In Task ( MEANS )
Exception occurred at (66FE70BC)
Task Traceback
Address Frame (DBGHELP API Version 4.0 rev 5)
66FE70BC 0359F720 0001:000260BC sassfm01.dll
66FD97A2 0359F760 0001:000187A2 sassfm01.dll
66FD83A5 0359F7D8 0001:000173A5 sassfm01.dll
66FCBDC6 0359F878 0001:0000ADC6 sassfm01.dll
66FC386E 0359F89C 0001:0000286E sassfm01.dll
67008769 0359FF84 0001:00007769 sasmeans.dll
67E223EE 0359FFA0 0001:000113EE sashost.dll
67E26DE0 0359FFB4 0001:00015DE0 sashost.dll
7C80B683 0359FFEC kernel32:GetModuleFileNameA+0x1B4
NOTE: The SAS System stopped processing this step because of errors.
但如果将上述过程中的by改为class,则可正常运行,不知为什么,请高手指点!
作者:
shiyiming
时间:
2009-12-14 14:23
标题:
Re: proc means过程中一个怪问题
在使用proc means; by 语句时,必须先采用proc sort;by 语句。。
作者:
shiyiming
时间:
2009-12-16 08:59
标题:
Re: proc means过程中一个怪问题
当然,proc sort 肯定是用过了!
作者:
shiyiming
时间:
2009-12-16 13:14
标题:
Re: proc means过程中一个怪问题
是不是也可能与使用'MEDIAN='这些和quantiles统计量的选项有关?proc means qmethod = os|p2来计算quantiles。os 是缺省的,很占用内存,尤其是当by的独特值很多的时候。
使用class 当然可以解决问题,如你所做的; 另外可以试试qmethod = p2,不知是否可行?
SAS有时候很怪,原因有二:1.的确很怪 2.我们无知。我觉得很合理的说法是,有时候怪我们无知,有时候怪sas很怪。
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2